很多状况下咱们须要对两条数据之间的差别进行比拟,如果仅仅是针对数值型对象,那么两者的差值就是所谓的差别,然而如果要比拟两条 JSON 数据间的差别呢?
因为 JSON 数据具备可嵌套可分层的特点,想要明确找出两条 JSON 数据间的差别并加以形容,如果本人书写办法还是有些麻烦。这种状况咱们就能够应用到第三方库 deepdiff 中的 DeepDiff() 办法,它基于递归对不同对象进行深度比拟。
应用 pip install deepdiff 实现装置之后,通过 from deepdiff import DeepDiff 导入所需性能,就能够间接对两个 JSON 对象之间的差别进行比拟,上面是一个简略的例子:
from deepdiff import DeepDiff
obj1 = {
'level1': [
{
'level1-1': 1,
'level1-2': 1,
'level1-3': [
{'level1-3-1': [1, 2, 3]
}
]
}
],
'level2': 'a'
}
obj2 = {
'level1': [
{
'level1-1': 1,
'level1-2': 1,
'level1-3': [
{'level1-3-1': [1, 2, 1]
}
]
}
],
'level2': 'b'
}
DeepDiff(obj1, obj2)
能够看到打印的检测后果中具体申明了差别内容及具体位置,能够帮忙咱们发展后续其余解决。
除此之外,deepdiff 还具备十分丰盛的额定性能,譬如疏忽对指定类型数据的比拟查看:
亦或是通过定义档次规定,令 DeepDiff() 跳过对指定地位元素的差别查看:
还反对利用正则表达式定义要疏忽的含糊档次规定,譬如上面的例子中咱们应用正则批量疏忽了多个键值对:
限度针对浮点数的查看精度,譬如上面的例子中限定 significant_digits= 2 后,小数点后第二位当前的差别便被疏忽:
最近整顿了几百 G 的 Python 学习材料,蕴含新手入门电子书、教程、源码等等,收费分享给大家!想要的返回“Python 编程学习圈 ”,发送“J”即可收费取得