在call表的CREATEDDATE下有一列datetime对象
2013-08-09 12:19:09
2012-06-10 09:08:10
2009-08-11 10:15:00
2013-08-09 11:20:09
2013-08-09 06:12:04
2013-08-09 01:09:15
我想创建一个字典,使用日期作为键,时间作为值。
我本来想运行
select (CAST CREATEDDATE as DATE) from Calls where Town = 'New York'
,然后遍历每个日期,从每个日期调出时报
select(CAST CREATEDDATE as TIME) from Calls where CREATEDDATE = '8/11/2009'
并将值输入到字典中,但上面的查询不起作用。
我正在寻找一种简单的方法,让我将日期时间对象列表转换为字典,或者根据日期从日期对象列选择时间。
您可以将datetime读取为str,并使用以下代码创建字典:
dt = ['2013-08-09 12:19:09','2012-06-10 09:08:10','2009-08-11 10:15:00']
adict={}
adict.update(ddtt.split() for ddtt in dt)
print adict
输出:{'2009-08-11': '10:15:00', '2012-06-10': '09:08:10', '2013-08-09': '12:19:09'}
编辑:如果你有相同的日期与多个时间相关联,你可以创建字典键值指向列表。例如,如果您的数据(不同时间重复的2013-08-09)
dt = ['2013-08-09 12:19:09','2012-06-10 09:08:10','2009-08-11 10:15:00', '2013-08-09 12:19:10']
您可以得到输出:
{'2009-08-11': ['10:15:00'], '2012-06-10': ['09:08:10'], '2013-08-09': ['12:19:09', '12:19:10']}
下面是获取它的代码:
adict={}
for ddtt in dt:
data=ddtt.split()
if data[0] in adict:
adict[data[0]].append(data[1])
else:
adict[data[0]] = [data[1]]