Repolode
qlustered

qlustered/deepdiff

用于深度比较嵌套 Python 对象、在对象中搜索、基于内容哈希以及以 delta 形式存储和应用差异的 Python 库。

Star
2,537
Fork
296
未关闭 Issue
125
最近提交
上个月

这是什么?

DeepDiff 是一个 Python 库,用于比较字典、列表、集合、字符串及任意对象等嵌套数据结构的差异。它会列出新增、删除和修改的内容,并给出每处变化的路径,便于精确定位两个对象在哪里不一致。

除差异比较外,该包还包含用于在嵌套对象中查找值的 DeepSearch、基于对象内容生成哈希的 DeepHash,以及用于存储差异并应用到其他对象上以重建结果的 Delta。此外还提供通过路径从嵌套对象中提取元素的 Extract,并可通过可选依赖安装命令行工具。

该库支持 Python 3.10 及更高版本和 PyPy3。可选依赖如 PyYAML、tomli、orjson 和 pydantic 可以增加对更多格式的支持并加快序列化速度。近期版本新增了多进程差异计算,以及 exclude_paths 和 include_paths 的通配符匹配。

核心功能

  • 01报告嵌套数据中新增、删除和修改的条目及其路径。
  • 02通过 DeepSearch 在任意嵌套 Python 对象中搜索值。
  • 03通过 DeepHash 为任意 Python 对象生成基于内容的哈希。
  • 04将差异保存为 Delta 对象,并应用到其他对象上重建结果。
  • 05exclude_paths 和 include_paths 支持通配符模式。

适用场景

  • 编写测试,断言两个复杂的 API 响应或配置对象是否一致。
  • 检测嵌套 JSON 或 YAML 数据不同版本之间的变化。
  • 追踪并重放结构化状态的增量更新。
  • 通过内容哈希对对象进行去重。

标签

常见问题

deepdiff 是什么?
用于深度比较嵌套 Python 对象、在对象中搜索、基于内容哈希以及以 delta 形式存储和应用差异的 Python 库。 DeepDiff 是一个 Python 库,用于比较字典、列表、集合、字符串及任意对象等嵌套数据结构的差异。它会列出新增、删除和修改的内容,并给出每处变化的路径,便于精确定位两个对象在哪里不一致。
deepdiff 可以免费使用吗?用的什么许可证?
deepdiff 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
deepdiff 还在维护吗?
半年内有更新。deepdiff 最近一次提交是在 2026年9月18日。
deepdiff 适合用来做什么?
编写测试,断言两个复杂的 API 响应或配置对象是否一致。 检测嵌套 JSON 或 YAML 数据不同版本之间的变化。 追踪并重放结构化状态的增量更新。 通过内容哈希对对象进行去重。
在哪里获取 deepdiff?
源代码和安装说明在 GitHub 上:https://github.com/qlustered/deepdiff

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目