基于嵌套字典值对python字典进行排序

Sorting Python dictionary based on nested dictionary values

如何根据嵌套字典的内部值对python字典进行排序?

例如,根据EDOCX1[1]的值对EDOCX1[0]进行排序:

1
2
3
4
5
mydict = {
    'age': {'context': 2},
    'address': {'context': 4},
    'name': {'context': 1}
}

结果应该是这样的:

1
2
3
4
5
{
    'name': {'context': 1},
    'age': {'context': 2},
    'address': {'context': 4}      
}


1
2
3
4
5
6
7
8
>>> from collections import OrderedDict
>>> mydict = {
        'age': {'context': 2},
        'address': {'context': 4},
        'name': {'context': 1}
}
>>> OrderedDict(sorted(mydict.iteritems(), key=lambda x: x[1]['context']))
OrderedDict([('name', {'context': 1}), ('age', {'context': 2}), ('address', {'context': 4})])

不管你多么努力,你都无法对字典进行排序,因为它们是无序的集合。使用OrderedDict形式的collections模块代替。