我有一个字典列表,我必须根据特定的键值对更新整个字典
import mongoose from 'mongoose';
我将收到一个新列表values = [
{
"value" : "AAA",
"rank" : 10,
"id" : 1
},
{
"value" : "BBB",
"rank" : 50,
"id" : 2
}
]
。想法是匹配ID,并更新与该ID相关的整个字典,并根据排名对整个值列表进行排序。
我遍历值列表并根据id进行匹配,当我尝试更新它时,替换了整个值列表
我尝试了这段代码
value_new = [{"value" : "CCC","rank" : 20,"id" : 1}]
附加后我无法对其进行排序。
答案 0 :(得分:1)
我试图用此代码复制您要执行的操作:
values = [
{
"value" : "AAA",
"rank" : 10,
"id" : 1
},
{
"value" : "BBB",
"rank" : 50,
"id" : 2
}
]
print(values)
value_new = [{
"value" : "CCC",
"rank" :20,
"id" : 1
}]
# code for editing here
for val in values:
if value_new[0]['id'] == val['id']:
for key in value_new[0]:
val[key] = value_new[0][key]
print(values)
这改变了您所描述的字典:
之前:
[{"value" : "AAA", "rank" : 10, "id" : 1}, {"value" : "BBB", "rank" : 50, "id" : 2}]
之后:
[{"value" : "CCC", "rank" : 20, "id" : 1}, {"value" : "BBB", "rank" : 50, "id" : 2}]