DeepDiff 9.0.0 documentation!

Modules

The DeepDiff library includes the following modules:

  • DeepDiff For Deep Difference of 2 objects. DeepDiff

    It returns the deep difference of python objects. It can also be used to take the distance between objects. Deep Distance

  • DeepSearch Search for objects within other objects. DeepSearch

  • DeepHash Hash any object based on their content even if they are not “hashable” in Python’s eyes. DeepHash

  • Delta Delta of objects that can be applied to other objects. Imagine git commits but for structured data. Delta

  • Extract For extracting a path from an object Extract

  • Commandline Most of the above functionality is also available via the commandline module Command Line

What Is New

DeepDiff 9-0-0

  • migration note:
    • to_dict() and to_json() now accept a verbose_level parameter and always return a usable text-view dict. When the original view is ‘tree’, they default to verbose_level=2 for full detail. The old view_override parameter is removed. To get the previous results, you will need to pass the explicit verbose_level to to_json and to_dict if you are using the tree view.

  • Dropping support for Python 3.9

  • Support for python 3.14

  • Added support for callable group_by thanks to echan5

  • Added FlatDeltaDict TypedDict for to_flat_dicts return type

  • Fixed colored view display when all list items are removed thanks to yannrouillard

  • Fixed hasattr() swallowing AttributeError in __slots__ handling for objects with __getattr__ thanks to tpvasconcelos

  • Fixed ignore_order=True missing int-vs-float type changes

  • Fixed Delta producing phantom entries when items both move and change values with iterable_compare_func thanks to devin13cox

  • Fixed _convert_oversized_ints failing on NamedTuples

  • Fixed orjson TypeError for integers exceeding 64-bit range

  • Fixed parameter bug in to_flat_dicts where include_action_in_path and report_type_changes were not being passed through

  • Fixed ignore_keys issue in detailed__dict__ thanks to vitalis89

  • Fixed logarithmic similarity type hint thanks to ljames8

  • Added Fraction numeric support thanks to akshat62

Tutorials

Tutorials can be found on Zepworks blog

Installation

Install from PyPi:

pip install deepdiff

If you want to use DeepDiff from commandline:

pip install "deepdiff[cli]"

If you want to improve the performance of DeepDiff with certain processes such as json serialization:

pip install "deepdiff[optimize]"

Read about DeepDiff optimizations at Optimizations

Importing

>>> from deepdiff import DeepDiff  # For Deep Difference of 2 objects
>>> from deepdiff import grep, DeepSearch  # For finding if item exists in an object
>>> from deepdiff import DeepHash  # For hashing objects based on their contents
>>> from deepdiff import Delta  # For creating delta of objects that can be applied later to other objects.
>>> from deepdiff import extract  # For extracting a path from an object

Note

if you want to use DeepDiff via commandline, make sure to run:

pip install "deepdiff[cli]"

Then you can access the commands via:

  • DeepDiff

$ deep diff --help
  • Delta

$ deep patch --help
  • grep

$ deep grep --help
  • extract

$ deep extract --help

Supported data types

int, string, unicode, dictionary, list, tuple, set, frozenset, OrderedDict, NamedTuple, Numpy, custom objects and more!

References

Indices and tables