用Python数字对具有数字键的字典进行排序的最Python方式是什么?

时间:2018-07-04 05:22:34

标签: python python-2.7 sorting dictionary

这是我的格式,dict

{
    "server" : {
        "2" : {
            name : "Chris",
            text : "Hello!"
        },
        "1" : {
            name : "David",
            text : "Hey!"
        }
    }
}

尽管键是字符串,但如何对数字dict['server']进行排序?我能想到的所有方法都需要多个名称,并且一点也不觉得Pythonic。

1 个答案:

答案 0 :(得分:3)

使用collections.OrderedDict

例如:

import collections
d = {
    "server" : {
        "2" : {
            "name" : "Chris",
            "text" : "Hello!"
        },
        "1" : {
            "name" : "David",
            "text" : "Hey!"
        }
    }
}

print collections.OrderedDict(sorted(d["server"].items(), key=lambda x: int(x[0])))

输出:

OrderedDict([('1', {'text': 'Hey!', 'name': 'David'}), ('2', {'text': 'Hello!', 'name': 'Chris'})])