【发布时间】:2021-08-30 16:22:24
【问题描述】:
我发现了一些与此类似的问题。问题是这些解决方案都不适合我,有些太先进了。我正在尝试读取这两个 JSON 文件并返回它们之间的差异。
我希望能够从 file2 返回丢失的对象并将其写入 file1。
这些都是 JSON 文件
file1
[
{
"name": "John Wood",
"age": 35,
"country": "USA"
},
{
"name": "Mark Smith",
"age": 30,
"country": "USA"
}
]
.
file2
[
{
"name": "John Wood",
"age": 35,
"country": "USA"
},
{
"name": "Mark Smith",
"age": 30,
"country": "USA"
},
{
"name": "Oscar Bernard",
"age": 25,
"country": "Australia"
}
]
代码
with open("file1.json", "r") as f1:
file1 = f1.read()
item1 = json.loads(file1)
print(item1)
with open("file2.json", "r") as f2:
file2 = f2.read()
item2 = json.loads(file2)
print(item2)
# Returns if that index is the same
for v in range(len(item1)):
for m in range(len(item2)):
if item2[v]["name"] == item1[m]["name"]:
print("Equal")
else:
print("Not Equal")
我不习惯使用 JSON 进行编程或比较两个不同的文件。 我想帮助退还差价,基本上是复制和粘贴 将丢失的对象放入 file1。如果 file1 中的每个对象都显示了我在这里的内容 等于或不等于file2。因此,返回“Equal”和“Not Equal”输出。
输出:
Equal
Not Equal
Not Equal
Not Equal
Equal
Not Equal
如果 file1 不等于 file2 以及哪个对象(“名称”),我想返回 是缺少的那个。之后,我希望能够使用 with open("file2.json", "w") 将丢失的对象添加/复制到 file2 中。
【问题讨论】:
-
请修正你的缩进。
-
如果两个文件的区别比这更复杂,你会怎么做?
-
我确实想到了这个问题。这就是我尝试使用这些简单 JSON 文件的原因。
标签: python json file comparison