如何迭代两组JSON键值对

时间:2019-01-23 11:04:03

标签: python python-2.7 python-requests

我想比较两个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)

1 个答案:

答案 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'}