Repolode
qlustered

qlustered/deepdiff

ネストしたオブジェクトの詳細比較や検索、内容に基づくハッシュ生成、差分の保存・適用ができるPythonライブラリ。

スター
2,537
フォーク
296
未解決の Issue
125
最終コミット
先月

これは何?

DeepDiffは、辞書、リスト、集合、文字列、任意のオブジェクトなど、ネストしたデータ構造の差分を検出するPythonライブラリです。追加・削除・変更された内容と、それぞれの変更箇所へのパスを報告するため、2つのオブジェクトがどこで異なるかを正確に確認できます。

差分検出に加えて、ネストしたオブジェクト内の値を探すDeepSearch、オブジェクトの内容に基づいてハッシュを生成するDeepHash、差分を保存して別のオブジェクトに適用し、結果を再構築するDeltaも含まれています。また、パスを指定してネストしたオブジェクトから項目を読み取るExtractと、オプションのextraを通じてインストールできるコマンドラインインターフェースも提供します。

Python 3.10以降とPyPy3に対応しています。PyYAML、tomli、orjson、pydanticなどのオプション依存関係により、対応フォーマットを増やしたり、シリアライズを高速化したりできます。最近のバージョンでは、差分検出のマルチプロセス処理と、exclude_pathsおよびinclude_pathsで使えるワイルドカードパターンが追加されました。

主な機能

  • 01ネストしたデータの追加・削除・変更と、そのパスを報告します。
  • 02DeepSearchで任意のネストしたPythonオブジェクト内の値を検索します。
  • 03DeepHashで任意のPythonオブジェクトの内容に基づくハッシュを生成します。
  • 04差分をDeltaオブジェクトとして保存し、適用してオブジェクトを再構築します。
  • 05exclude_pathsとinclude_pathsでワイルドカードパターンを使用できます。

ユースケース

  • 複雑なAPIレスポンスや設定オブジェクトが一致することを確認するテストを書く。
  • ネストしたJSONデータやYAMLデータのバージョン間の変更を検出する。
  • 構造化された状態への増分更新を追跡し、再適用する。
  • 内容ハッシュを使ってオブジェクトを重複排除する。

クイックスタート

  1. 1

    DeepDiffをPyPIからインストールする

    pip install deepdiff
  2. 2

    必要に応じてコマンドライン用の追加機能をインストールする

    pip install "deepdiff[cli]"

使う前に知っておきたいこと

  • メタデータではライセンスがNOASSERTIONと記載されているため、使用前にライセンス条件を確認してください。
  • READMEには、このプロジェクトは現在Qlusterの一部であると記載されており、Qlusterの宣伝文も含まれています。

トピック

よくある質問

deepdiff とは?
ネストしたオブジェクトの詳細比較や検索、内容に基づくハッシュ生成、差分の保存・適用ができるPythonライブラリ。 DeepDiffは、辞書、リスト、集合、文字列、任意のオブジェクトなど、ネストしたデータ構造の差分を検出するPythonライブラリです。追加・削除・変更された内容と、それぞれの変更箇所へのパスを報告するため、2つのオブジェクトがどこで異なるかを正確に確認できます。
deepdiff は無料で使えますか?ライセンスは?
deepdiff は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
deepdiff は今もメンテナンスされていますか?
半年以内に更新あり。deepdiff の最終コミットは 2026年9月18日 です。
deepdiff は何に使えますか?
複雑なAPIレスポンスや設定オブジェクトが一致することを確認するテストを書く。 ネストしたJSONデータやYAMLデータのバージョン間の変更を検出する。 構造化された状態への増分更新を追跡し、再適用する。 内容ハッシュを使ってオブジェクトを重複排除する。
deepdiff のインストール方法は?
DeepDiffをPyPIからインストールする: pip install deepdiff 必要に応じてコマンドライン用の追加機能をインストールする: pip install "deepdiff[cli]"
deepdiff はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/qlustered/deepdiff

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト