【Python--deepdiff库使用】

本文介绍了Pythondeepdiff库的功能,包括比较字典、JSON等对象的差异,支持类型变化、值变化检测,以及高级选项如忽略顺序、大小写等。通过实例展示了如何使用它来找出两个JSON文本之间的差异。
摘要由CSDN通过智能技术生成

Python--deepdiff库使用

PYPI官网解释链接:deepdiff · PyPI

# 安装:pip3 install deepdiff

组成模块

  • DeepDiff:比较字典、可迭代对象、字符串和其他对象的深度差异
  • DeepSearch:查找对象中的对象
  • DeepHash:基于内容对任何对象进行哈希处理
  • Delta:存储对象之间的差异,并将其应用于其他对象
  • Extract:通过路径来获取一个嵌套python对象的值
  • Commandline:可以在命令行使用DeepDiff

用处:可高效对比 JSON 格式的文本

如果比较的两个对象结果完全一致,则返回空字典;否则返回有差异的字段

#首先导入库
from deepdiff import DeepDiff
#示例:比较两个json文本的差异
from deepdiff import DeepDiff
json1={
    'code': 0,
    "message": "success",
    "data": {
        "total": 28,
        "id":123
	}
}
json2={
    'code': "0",
    "message":"success",
    "data": {
        "total": 29,
    }
}
print(DeepDiff(json1,json2))

#运行结果
{'type_changes': {"root['code']": {'old_type': <class 'int'>, 'new_type': <class 'str'>, 'old_value': 0, 'new_value': '0'}}, 'dictionary_item_removed': [root['data']['id']], 'values_changed': {"root['data']['total']": {'new_value': 29, 'old_value': 28}}}
#返回结果解释:
1. type_changes:类型改变
2. values_changed:值改变
3. dictionary_item_added:字典key增加
4. dictionary_item_removed:字典key删除

高级用法

  1. 忽略排序:ignore_order
  2. 忽略大小写:ignore_string_case
  3. 忽略某些类型:exclude_types
  4. 指定比较方式:verbose_level=2(采用深度优先算法进行比较)
  5. 自定义比较方法:继承deepdiff.DeepSearch类,并重写其visit方法
  6. 用树状图展示:view='tree'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值