排序python中嵌套字典的列表

L-R*_*L-R 9 python sorting dictionary

我有类似的东西

[
    {
        "key": { "subkey1":1, "subkey2":"a"  }
    },
    {
        "key": { "subkey1":10, "subkey2":"b" }
    },
    {
        "key": { "subkey1":5, "subkey2":"c" }
    }
]
Run Code Online (Sandbox Code Playgroud)

并且需要:

[
    {
        "key": { "subkey1":10, "subkey2":"b" }
    },
    {
        "key": { "subkey1":5, "subkey2":"c" }
    },
    {
        "key": { "subkey1":1, "subkey2":"a" }
    }
]
Run Code Online (Sandbox Code Playgroud)

非常感谢!

编辑:我想按subkey1排序,这在以前不清楚.

Mar*_*ers 14

key关键字用于sorted()函数sort()方法:

yourdata.sort(key=lambda e: e['key']['subkey'], reverse=True)
Run Code Online (Sandbox Code Playgroud)

演示:

>>> 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}}]
Run Code Online (Sandbox Code Playgroud)

这假设所有顶级词典都有一个key键,假定它是一个带subkey键的字典.

有关更多详细信息和技巧,请参阅Python Sorting HOWTO.