python3 比较两个json内容相同的方法
时间: 2024-09-24 14:04:50 浏览: 53
在Python中,比较两个JSON内容是否相同通常需要先将它们解析成字典或数据结构,然后再进行深度对比。你可以使用`json.loads()`函数将JSON字符串转换为Python字典,然后通过递归遍历比较它们的键值对。这里有一个简单的示例:
```python
import json
def is_json_equal(json_str1, json_str2):
dict1 = json.loads(json_str1)
dict2 = json.loads(json_str2)
# 使用deepcopy避免直接修改原始对象
dict1_copy = dict1.copy()
dict2_copy = dict2.copy()
def recursive_compare(d1, d2):
if isinstance(d1, dict) and isinstance(d2, dict):
for key in set(d1.keys()).union(d2.keys()):
if key not in d1 or key not in d2:
return False
if not recursive_compare(d1[key], d2[key]):
return False
return True
elif isinstance(d1, list) and isinstance(d2, list):
if len(d1) != len(d2):
return False
for i in range(len(d1)):
if not recursive_compare(d1[i], d2[i]):
return False
return True
else:
return d1 == d2
return recursive_compare(dict1_copy, dict2_copy)
# 示例
json_str1 = '{"name": "Alice", "age": 25}'
json_str2 = '{"name": "Alice", "age": 25}'
print(is_json_equal(json_str1, json_str2)) # 输出: True
```
这个函数首先检查两个JSON是否都是字典或列表,并逐层递归地比较它们的内容。如果发现有不匹配的地方,它会立即返回False。如果所有元素都匹配,最后返回True。
阅读全文