以下是一个示例代码,演示了如何比较两个对象并导出差异:
import json
def compare_objects(obj1, obj2):
diff = {}
# 比较obj1中的每个键值对
for key in obj1:
if key not in obj2:
diff[key] = {
"old_value": obj1[key],
"new_value": None
}
elif obj1[key] != obj2[key]:
diff[key] = {
"old_value": obj1[key],
"new_value": obj2[key]
}
# 检查obj2中是否有obj1中没有的键值对
for key in obj2:
if key not in obj1:
diff[key] = {
"old_value": None,
"new_value": obj2[key]
}
return diff
# 两个示例对象
obj1 = {
"name": "John",
"age": 30,
"city": "New York"
}
obj2 = {
"name": "John",
"age": 35,
"country": "USA"
}
# 比较并导出差异
diff = compare_objects(obj1, obj2)
# 将差异导出为JSON格式
diff_json = json.dumps(diff, indent=4)
print(diff_json)
运行这段代码将输出如下结果:
{
"age": {
"old_value": 30,
"new_value": 35
},
"city": {
"old_value": "New York",
"new_value": null
},
"country": {
"old_value": null,
"new_value": "USA"
}
}
这个示例代码会比较obj1
和obj2
两个对象的键值对,找出差异,并将差异导出为JSON格式的字符串。在差异对象中,每个键值对都包含了旧值和新值。如果某个键值对只存在于一个对象中,则将另一个值设为None
。