сортировка списка вложенных словарей в python

У меня есть что-то вроде

[ { "key": { "subkey1":1, "subkey2":"a" } }, { "key": { "subkey1":10, "subkey2":"b" } }, { "key": { "subkey1":5, "subkey2":"c" } } ] 

И нужно будет:

 [ { "key": { "subkey1":10, "subkey2":"b" } }, { "key": { "subkey1":5, "subkey2":"c" } }, { "key": { "subkey1":1, "subkey2":"a" } } ] 

Большое спасибо!

EDIT: Я хотел бы сортировать по subkey1, это было неясно ранее.

Используйте key ключевое слово для функции sorted() и sort() :

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

Демо-версия:

 >>> 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}}] 

Это предполагает, что все словари верхнего уровня имеют key ключ, который считается словарем с ключом subkey .

См. POWON Sorting HOWTO для получения более подробной информации и трюков.

 sorted(yourdata, reverse=True) 

Предполагая, что вы хотите сортировать по значению d['key']['subkey'] для каждого словаря d в списке, используйте это:

 sorted(yourdata, key=lambda d: d.get('key', {}).get('subkey'), reverse=True)