通过嵌套值有效排序庞大的字典词典?

时间:2014-04-10 15:57:43

标签: python

如何对这样的字典(简化版)进行排序:

x = {
    '1': {
        'type': 'a',
        'created_at': 'date time object here',
    },
    '2': {
        'type': 'b',
        'created_at': 'date time object here',
    },
    '3': {
        'type': 'a',
        'created_at': 'date time object here',
    },
}

我有一个字典,结构如上,有几十万个键,我需要通过created_at值对它进行排序,这是一个日期时间对象。

1 个答案:

答案 0 :(得分:3)

使用简单的key函数:

sorted(d.iteritems(), key=lambda i: i[1]['created_at'])

这将生成一个(key, nested_dict)元组的排序列表,按嵌套字典的'created_at'键排序。

在Python 3中,将iteritems()替换为items()。你无法避免创建一个列表;排序需要一个可订购的,可变的序列来移动项目。