我需要使用list1
中的值更新list2
中的词典 - 基于匹配的key, value
对
编辑: 在这里,我不能把字典中的键 - 这也需要是通用的。 条件是如果两个列表中都存在键,值对 - list1需要使用list2中的所有键,值对进行更新 - 如果不匹配 - 则需要保持不变。明天我可能需要更新ghe flexconnect ot面料值。
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行语法错误!!
答案 0 :(得分:0)
这不是一个足够简单的迭代吗?
for data1 in list1:
for data2 in list2:
if data1["key"] == data2["key"]:
data1["value"] = data2["value"]
break
注意:我认为你很难代表数据。更好的表现形式如下:
dict2 = {"wireless.primaryAuthServer": "1.1.1.1", "wireless.secondaryAuthServer": "2.2.2.2"}
答案 1 :(得分:0)
答案是:
表示list2中的项目: 对于index,enumerate(list1)中的item1: for item.keys()中的键: 如果键入item1.keys(): if item1 [key] == item [key]: list1的[索引] =项 打印(列表1)