Ordenar la lista de diccionarios nesteds en Python

Tengo algo como

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

Y necesitaría tener:

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

¡Muchas gracias!

EDITAR: Me gustaría ordenar por subclave1, esto no estaba claro anteriormente.

Use la palabra key clave para la función sorted() y el método sort() :

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

Manifestación:

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

Esto supone que todos los diccionarios de nivel superior tienen una key , que se supone que es un diccionario con una clave de subkey .

Consulte el CÓMO de clasificación de Python para obtener más detalles y trucos.

Suponiendo que desea ordenar por el valor de d['key']['subkey'] para cada diccionario d en la lista, use esto:

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