【发布时间】:2019-01-16 15:42:25
【问题描述】:
我有一个字典列表。字典的字段之一是"name"。我正在将此字典列表保存到文件中:使用命令
json.dump(myList, fileName, indent=4)
但它没有按我的意愿保存。由于list data-structure 是一个允许排序的结构,如何将其保存为按字典元素字段排序的json数组?
例如考虑这个字典列表:
l =[{'name':'c', 'val' : 9},{'name': 'a', 'val': 10}, {'name': 'b', 'val': 10}, {'name': 'aa', 'val': 10}]
我想输出一个像这样的json:
[
{
"name": "a",
"val": 10
},
{
"name": "aa",
"val": 10
},
{
"name": "b",
"val": 10
},
{
"name": "c",
"val": 9
}
]
【问题讨论】:
-
请注意,其中许多答案在 Python3 中不起作用,而仅在 Python2 中起作用,因为字典发生了变化。出于这个原因,我认为它不是重复的
-
keys()、values()等字典方法不再返回list(但如果我没记错的话,views),例如解决方案sorted(a, key=dict.values, reverse=True)无效。 -
@这不能解决你的问题,你不是按 all 值排序 - 你是按一个键的值排序......所以你这样做
l.sort(key=lambda d:d.get("name")并完成. -
这可能是一个更好的骗局:how-do-i-sort-a-list-of-dictionaries-by-a-value-of-the-dictionary .. 对我来说这是
python sort list of dict by attribute在谷歌上的第一次点击,还有 2-5 个其他人在浮动导致相同的解决方案 - 现在有3-6个。
标签: json python-3.x list dictionary save