gpt4 book ai didi

python - 如何在 python 中仅使用键比较 2 个 JSON

转载 作者:行者123 更新时间:2023-12-01 04:00:31 25 4
gpt4 key购买 nike

我检查了this thread on comparing JSON objects .

JSON a:

{
"errors": [
{"error": "invalid", "field": "email"},
{"error": "required", "field": "name"}
],
"success": false
}

`JSON b:带有额外字段

{
"errors": [
{"error": "invalid", "field": "email"},
{"error": "required", "field": "name"},
{ "key1": : "value2", }

],
"success": false
}

我想在 python 中比较这 2 个 json,这样它就会告诉我

  1. 如果 JSON 相同并且发现了额外的键值对,那么它应该给出以下结果 找到新字段:{ "key1: : "value2", } 并且 json 的其余部分是相同的。

  2. 如果 JSON 完全相同,则表示键按顺序匹配,则它将显示 TRUE。
  3. 如果 JSON 键相同但值不同,则会显示以下键的值不同。

最佳答案

如果您只想打印 subjson 中的差异(而不是从根开始的整个结构),您可能需要使用递归请求

def json_compare(json1, json2):
#Compare all keys
for key in json1.keys():
#if key exist in json2:
if key in json2.keys():
#If subjson
if type(json1[key]) == dict:
json_compare(json1[key], json2[key])
else:
if json1[key] != json2[key]:
print "These entries are different:"
print json1[key]
print json2[key]
else:
print "found new key in json1 %r" % key
return True

关于python - 如何在 python 中仅使用键比较 2 个 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36635726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com