我想比较两个json值,例如
source1 =
{ "a" : "value 1",
"b" : "value to be updated",
"c" : "value 3",
"d" : "second value to be updated"
}
target = {
"a" : "value 1",
"b" : "value 2"",
"c" : "value 3",
"d" : "second 4"}
现在,我想比较两个具有相同键但值可能不同的 json 。如何找到不同的值?
我的最终结果应该像:
{
"a" : "value 1"
"b" : "value 2"
"c" : "value 3"
"d" : "second4"
}
在代码中,第一组key:value需要与第二组进行比较,如果第二组包含不同的值,则更新key:value并创建第三组 json : / p>
import json
source = '{"a" : "value 1","b" : "value to be updated","c" : "value 3","d" : "second value to be updated" }'
target = '{"a": "value1" , "b" : 2 , "c" : "value 3" , "d" : 4}'
jsonload = (json.loads(source))
jsonload1 = (json.loads(target))
for k in jsonload:
for k in jsonload1:
if jsonload[k] != jsonload1[k]:
print("key of" , k ,"not matched in ", k ,jsonload[k],jsonload1[k])
输出:
('key of',u'a','在',u'a',u'value 1',u'value1'中不匹配)('key of',u'b','不匹配',u'b',u'value待更新',2)('key ',u'd','不匹配',u'd',u'第二个要更新的值',4) ('key of',u'a','在',u'a',u'value 1',u'value1'中不匹配)('key of',u'b','不匹配',u'b',u'value待更新',2)('key ',u'd','不匹配',u'd',u'第二个要更新的值',4) ('key of',u'a','在',u'a',u'value 1',u'value1'中不匹配)('key of',u'b','不匹配',u'b',u'value待更新',2)('key ',u'd','不匹配',u'd',u'第二个要更新的值',4) ('key of',u'a','在',u'a',u'value 1',u'value1'中不匹配)('key of',u'b','不匹配',u'b',u'value待更新',2)('key ',u'd','不匹配',u'd',u'要更新的第二个值',4)
答案 0 :(得分:1)
好像您需要dict.update()
方法
例如:
source1 = { "a" : "value 1", "b" : "value to be updated", "c" : "value 3", "d" : "second value to be updated" }
target = { "a" : "value 1", "b" : "value 2", "c" : "value 3", "d" : "second 4"}
source1.update(target)
print(source1)
输出:
{'a': 'value 1', 'c': 'value 3', 'b': 'value 2', 'd': 'second 4'}