Reputation: 339
How do you sort a Python dictionary based on the inner value of a nested dictionary?
For example, sort mydict
below based on the value of context
:
mydict = {
'age': {'context': 2},
'address': {'context': 4},
'name': {'context': 1}
}
The result should be like this:
{
'name': {'context': 1},
'age': {'context': 2},
'address': {'context': 4}
}
Upvotes: 24
Views: 8692
Reputation: 133544
>>> 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})])
Upvotes: 21