很多状况下咱们须要对两条数据之间的差别进行比拟,如果仅仅是针对数值型对象,那么两者的差值就是所谓的差别,然而如果要比拟两条JSON数据间的差别呢?

因为JSON数据具备可嵌套可分层的特点,想要明确找出两条JSON数据间的差别并加以形容,如果本人书写办法还是有些麻烦。这种状况咱们就能够应用到第三方库deepdiff中的DeepDiff()办法,它基于递归对不同对象进行深度比拟。

应用pip install deepdiff实现装置之后,通过from deepdiff import DeepDiff导入所需性能,就能够间接对两个JSON对象之间的差别进行比拟,上面是一个简略的例子:

from deepdiff import DeepDiffobj1 = {    '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” 即可收费取得