python中有没有方法/类/模块来比较两个json对象并打印更改/差异?
我试过使用“json_tools”,结果相当不错,但是如果两个json对象中有python列表的元素顺序不同,diff就失败了。
例如
{
'Person' :
{
'FName' : 'John',
'LName' : 'Rambo',
'Sex' : 'Male'
'Height' : '6 ft',
'Weight' : '90 KG',
'Children' :
[
{
'FName' : 'Anna',
'LName' : 'Rambo',
'Sex' : 'Female',
'Height' : '5 ft',
'Weight' : '55 KG',
},
{
'FName' : 'Jemmy',
'LName' : 'Rambo',
'Sex' : 'Male',
'Height' : '5 ft',
'Weight' : '60 KG',
}
]
}
}
{
'Person' :
{
'FName' : 'John',
'LName' : 'Rambo',
'Sex' : 'Male'
'Height' : '6 ft',
'Weight' : '90 KG',
'Children' :
[
{
'FName' : 'Jemmy',
'LName' : 'Rambo',
'Sex' : 'Male',
'Height' : '5 ft',
'Weight' : '60 KG',
},
{
'FName' : 'Anna',
'LName' : 'Rambo',
'Sex' : 'Female',
'Height' : '5 ft',
'Weight' : '55 KG',
}
]
}
}
json diff显示两个json不匹配。。从逻辑上讲,它们是相同的。。
在python中有没有一种很好的json匹配和比较方法?
你可以使用jsondiff
。。。假设json1和json2加载了示例中的json条目(顺便说一下,“sex”条目后面缺少逗号)。
他们不是。顺序在JSON数组中很重要。我不知道有什么工具会无视你的订单。您可以尝试在反序列化的结构上递归,将列表转换成某种多集,将dict转换成某种散列的、冻结的dict(这样您就可以将它们转换成多集),然后在上面运行自己的diff例程。
可以将deepdiff与
ignore_order=True
一起使用相关问题 更多 >
编程相关推荐