sorting list of nested dictionaries in python
dictionary, python, sorting
Solution
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.
Problem
I have something like ``` [ { "key": { "subkey1":1, "subkey2":"a" } }, { "key": { "subkey1":10, "subkey2":"b" } }, { "key": { "subkey1":5, "subkey2":"c" } } ] ``` And would need to have : ``` [ { "key": { "subkey1":10, "subkey2":"b" } }, { "key": { "subkey1":5, "subkey2":"c" } }, { "key": { "subkey1":1, "subkey2":"a" } } ] ``` Many thanks! EDIT : I'd like to sort by subkey1, this wasn't clear previously.