首页 > 解决方案 > 在字典列表中查找键并对列表进行排序

问题描述

具有类似 JSON 的结构:

{
    "shopping_list": [
        {
            "level": 0,
            "position": 0,
            "item_name": "Gold Badge"

        },
        {
            "level": 1,
            "position": 10,
            "item_name": "Silver Badge"

        },
        {
            "level": 2,
            "position": 20,
            "item_name": "Bronze Badge"

        }
    ]
}

我正在尝试按键对列表进行排序。

但是,当尝试通过以下方式获取它们时:

k = [c.keys()[0] for c in complete_list["shopping_list"]]

我明白了TypeError: 'dict_keys' object does not support indexing

  1. 如何获得钥匙?
  2. 如何按指定键对列表进行排序?

标签: pythonpython-3.xdictionary

解决方案


试试这个来获取列表列表中的键:

d = {
    "shopping_list": [
    ...
}
k = [list(c.keys()) for c in d["shopping_list"]]
print(k)

输出

[['item_name', 'level', 'position'], ['item_name', 'level', 'position'], ['item_name', 'level', 'position']]

但是,即使您想根据某些特定的键值(例如"level"键或"position"键的值)对该列表列表进行排序,列表列表也将保持不变。


推荐阅读