sorting list of nested dictionaries in python

Use the key keyword to the sorted() function and sort() method:

yourdata.sort(key=lambda e: e['key']['subkey'], reverse=True)

Demo:

>>> yourdata = [{'key': {'subkey': 1}}, {'key': {'subkey': 10}}, {'key': {'subkey': 5}}]
>>> yourdata.sort(key=lambda e: e['key']['subkey'], reverse=True)
>>> yourdata
[{'key': {'subkey': 10}}, {'key': {'subkey': 5}}, {'key': {'subkey': 1}}]

This assumes that all top-level dictionaries have a key key, which is assumed to be a dictionary with a subkey key.

See the Python Sorting HOWTO for more details and tricks.

Leave a Comment