使用字符串数字键对字典进行数字排序的最具python风格的方法是什么?

使用字符串数字键对字典进行数字排序的最具python风格的方法是什么?,python,python-2.7,sorting,dictionary,Python,Python 2.7,Sorting,Dictionary,这是我的格式,dict: 虽然键是字符串,但如何对dict['server']进行数字排序?我能想到的所有方法都需要多个名称,而且一点也不觉得很像Pythonic。使用collections.OrderedDict 例: 输出: 你为什么需要把字典的键分类?您尝试过什么?将字符串转换为整数?在Python 2.7中,字典是无序的。您必须使用@MatthewStory:Python 3.7正式将dict order retention作为语言规范的一部分。{k:v代表k,v在sorteddi['s

这是我的格式,dict:

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

使用collections.OrderedDict

例:

输出:


你为什么需要把字典的键分类?您尝试过什么?将字符串转换为整数?在Python 2.7中,字典是无序的。您必须使用@MatthewStory:Python 3.7正式将dict order retention作为语言规范的一部分。{k:v代表k,v在sorteddi['server'].items}将其用于OrderedDict或Python 3.6+dict,您能向我解释为什么键在OrderedDict sortedd['server']中的值。items,key=lambda x:intx[0]:throws-ValueError:没有足够的值来解包本例中的预期值2,得到1?您缺少项Ex:对于键,集合中的值。OrderedDictsortedd['server']。项,项=lambda x:intx[0]。项:
{
    "server" : {
        "2" : {
            name : "Chris",
            text : "Hello!"
        },
        "1" : {
            name : "David",
            text : "Hey!"
        }
    }
}
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'})])