我需要从list2
在list1
与值更新字典值对 - 基于匹配key, value
对python3 - 两个列表 - 更新一个列表与匹配键,从另一个
编辑: 在这里,我不能拿字典中的密钥 - 这也需要一般。 条件是如果两个列表中都存在一个键值对 - 列表1需要使用列表2中的所有键值对进行更新 - 如果不匹配 - 它们需要保持不变。明天我可能需要更新FlexConnect的Fabric结构值。
list1 = [{
"key": "wireless.fabric",
"value": ""
"descr": ""
},
{
"key": "wireless.flexConnect",
"value": ""
"descr": ""
},
{
"key": "wireless.primaryAuthServer",
"value": ""
"descr" : ""
},
{
"key": "wireless.secondaryAuthServer",
"value": ""
"descr" : ""
},
{
"key": "wireless.authMode",
"value": "central"
"descr": ""
}
]
list2 = [{
"key": "wireless.primaryAuthServer",
"value": "1.1.1.1"
"descr": "primary server details"
},
{
"key": "wireless.secondaryAuthServer",
"value": "2.2.2.2"
"descr": "secondary server details"
}]
我有一个代码片段 - 但它给出了语法错误 - 任何帮助?
for d in list1:
if(d[k] == d1[k] for d1 in list2 for k in d):
d[k] = [d1[k] for d1 in list2 for k in d]
第3行的语法错误!
你有什么公平的人试过? –
将你的'list2'变成'key => value'映射,然后遍历你的'list1'来更新匹配关键字和上述映射的值。 – zwer
获得列表2中的键值对 - 如果列表1中存在相同的键值对 - 更新它 - 保留所有其他字典等。我无法做到这一点 - list2可以是任何子集list1--所以键值对也需要一概而论 –