首页 > 解决方案 > 如何比较两个 JSON 文件并在 python 中形成单个 JSON 文件

问题描述

将 file1.json 和 file2.json 与 id 值进行比较。

如果两个 id 值都匹配,则将两个对象组合为结果 JSON 对象并将其存储在最终 JSON 中。

第一个 JSON 文件(file1.json):

file1 = [{
    "id": 1234,
    "appname": "e-commerence",
    "usage": 24,
    "availablity": "1 day"
},{
    "id": 5678,
    "appname": "Hospital",
    "usage": 40,
    "availablity": "30 days"
}]

第二个 JSON (file2.json):

file2 = [{
    "id": 1234,
    "language": "python",
    "place": "singapore",
    "ENV": "Testing"
}, {
    "id": 5678,
    "language": "Java",
    "place": "Dubai",
    "ENV": "DeV"
}]

预期的最终 JSON (final.json):

final = [{
    "id": 1234,
    "appname": "e-commerence",
    "usage": 24,
    "availablity": "1 day",
    "language": "python",
    "place": "singapore",
    "ENV": "Testing"
}, {
    "id": 5678,
    "appname": "Hospital",
    "usage": 40,
    "availablity": "30 days",
    "language": "Java",
    "place": "Dubai",
    "ENV": "DeV"
}]

标签: pythonpython-3.x

解决方案


正确的方法是对 JSON 数据进行解码,然后比较它是否给出了您期望的结果:

a = json.load("file-a")
b = json.load("file-b")
if a == b:
    print("file-a and file-b contain the same JSON data")

如果您关心的是存储在 JSON 文件中的数据,那么这是检查它的正确方法

另一方面,如果您不关心数据,但您想检测空格、空行或其他对 JSON 数据没有影响的更改,则无需关心这是 JSON数据。只需将其视为文本,并使用 difflib 库。

http://docs.python.org/2/library/difflib.html


推荐阅读