使用Python中的日期键对dict进行排序

时间:2014-04-22 12:26:54

标签: python sorting dictionary

我有一个日期时间键的字典,如下所示

{u'2014-04-21 14:46': {u'status': 0, u'created': u'21-04-2014 14:46', u'duration': u'0:12'}, u'2014-04-22 10:31': {u'status': 0, u'created': u'22-04-2014 10:31', u'duration': u'1:28}}

我需要用日期时间键对其进行排序。

我已经尝试过如下question中提及的内容,但未按预期排序。

ordered = OrderedDict(sorted(mydict.items(), key=lambda t: t[0]))

在该问题中,密钥为2014-04-21,而我的密钥为2014-04-21 14:46

任何帮助都会表示赞赏。

1 个答案:

答案 0 :(得分:1)

据我所见,您可以使用ISO日期。

ISO日期为alphabetically sortable。没有必要处理它们作为日期的特殊情况。我认为您的代码没有任何问题。

运行代码,例如

>>> list(OrderedDict(sorted(mydict.items(), key=lambda t: t[0])))

生成排序的密钥,例如

[u'2014-04-21 14:46', u'2014-04-22 10:31']

要按降序顺序对列表进行排序,请使用

>>> list(OrderedDict(sorted(mydict.items(), key=lambda t: t[0], reversed=True)))