如何按日期字符串将对象排序为键 - python

时间:2017-09-20 13:56:19

标签: python

我有对象:

{'2017-10-2': 0.09457282561051072, '2017-10-3': 0.06606813446091735, '2017-10-1': 0.13701336286945082, '2017-10-6': 0.08511672971024725 }

并希望按日期排序(但键的类型是字符串,而不是日期时间)。 响应应该像:

{   
    '2017-10-1': 0.13701336286945082,
    '2017-10-2': 0.09457282561051072, 
    '2017-10-3': 0.06606813446091735, 
    '2017-10-6': 0.08511672971024725 
}

试图使用谷歌找到一些东西,但没有成功。

提前致谢,

1 个答案:

答案 0 :(得分:1)

字典无法排序,因为您必须使用集合模块中的 OrderedDict

对于日期时间比较,您可以使用 dateutils.parse

from dateutil.parser import parse
from collections import OrderedDict

d = {'2017-10-2': 0.09457282561051072, '2017-10-3': 0.06606813446091735, '2017-10-1': 0.13701336286945082, '2017-10-6': 0.08511672971024725}
print(OrderedDict(sorted(d.items(), key=lambda x: parse(x[0]))))