我有类似
的东西[
{
"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" }
}
]
非常感谢!
编辑:我想按subkey1排序,之前不清楚。
答案 0 :(得分:13)
将key
关键字用于sorted()
function和sort()
method:
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
键的词典。
有关详细信息和技巧,请参阅Python Sorting HOWTO。
答案 1 :(得分:1)
假设您要为列表中的每个字典d['key']['subkey']
按d
的值排序,请使用:
sorted(yourdata, key=lambda d: d.get('key', {}).get('subkey'), reverse=True)
答案 2 :(得分:0)
sorted(yourdata, reverse=True)