python - 在字典列表中查找键并对列表进行排序
问题描述
具有类似 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
。
- 如何获得钥匙?
- 如何按指定键对列表进行排序?
解决方案
试试这个来获取列表列表中的键:
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"
键的值)对该列表列表进行排序,列表列表也将保持不变。
推荐阅读
- react-native - 如何使用 React Native 从图像后面移动按钮
- azure-cognitive-search - Azure 搜索:通配符查询不适用于日文/中文字符
- java - 带有recyclerview ondatachange的Android Firebase实时数据库
- r - 根据其他数据框对数据框行和列进行分组?
- angular - 导入特征效果时全局注入器出现问题 [Angular 9]
- php - PHP基准的奇怪问题
- android - 使用后台 SIP 连接测试 Android 打盹模式 - 不会断开连接
- braintree - 是否可以将 Braintree 与 .net 桌面应用程序集成?
- javascript - 如何通过javascipt中的字符串逐字迭代?
- java - 春季云功能使用rabbitmq队列 - 调度程序没有频道订阅者