超实用!深度比较Python对象之间的差异

网站建设4年前发布
30 0 0

20230305205134f73c2828847e972051407384c0e617eba1ccca148,很多情况下我们需要对两条数据之间的差异进行比较,如果仅仅是针对数值型对象,那么两者的差值就是所谓的差异,但是如果要比较两条JSON数据间的差异呢?,由于JSON数据具有可嵌套可分层的特点,想要明确找出两条JSON数据间的差异并加以描述,如果自己书写方法还是有些费事。这种情况我们就可以使用到第三方库deepdiff中的DeepDiff()方法,它基于递归对不同对象进行深度比较。,使用pip install deepdiff完成安装之后,通过from deepdiff import DeepDiff导入所需功能,就可以直接对两个JSON对象之间的差异进行比较,下面是一个简单的例子:,可以看到打印的检测结果中具体声明了差异内容及具体位置,可以帮助我们开展后续其他处理。,20230305204920220c20402bf99aa3c7c740cdef9c69ca9c7416162,除此之外,deepdiff还具有非常丰富的额外功能,譬如忽略对指定类型数据的比较检查:,20230305204920033b29c502ccab8cac5256e5be747426307266945,亦或是通过定义层次规则,令DeepDiff()跳过对指定位置元素的差异检查:,20230305204922781d42d611b8a0867b5411d79fcc1b7bfb06c7267,还支持利用正则表达式定义要忽略的模糊层次规则,譬如下面的例子中我们使用正则批量忽略了多个键值对:,20230305204922034ef9e2071d6e639eb2442067917831650f94790,限制针对浮点数的检查精度,譬如下面的例子中限定significant_digits=2后,小数点后第二位以后的差异便被忽略:, 20230305204922f7f80f0611eaea92e340898e1c3a82db51342a275

© 版权声明

相关文章