将datetime对象列表拆分为键(日期)和值(时间)



在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]]

相关内容

  • 没有找到相关文章

最新更新