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.
Assuming you want to sort by the value of d['key']['subkey']
for every dictionary d
in the list, use this:
sorted(yourdata, key=lambda d: d.get('key', {}).get('subkey'), reverse=True)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With