Repolode
qlustered

qlustered/deepdiff

Библиотека Python для глубокого сравнения вложенных объектов, поиска по ним, хеширования содержимого и хранения и применения различий в виде дельт.

Звёзды
2,537
Форки
296
Открытые issues
125
Последний коммит
в прошлом месяце

Что это?

DeepDiff — библиотека Python для поиска различий между вложенными структурами данных, такими как словари, списки, множества, строки и произвольные объекты. Она сообщает, что было добавлено, удалено или изменено, и указывает путь к каждому изменению, чтобы разработчики могли точно определить, в чём расходятся два объекта.

Помимо сравнения, пакет включает DeepSearch для поиска значений во вложенных объектах, DeepHash для вычисления хеша на основе содержимого объекта и Delta для хранения различий и их применения к другим объектам с целью восстановления результата. Также в библиотеке есть Extract — инструмент для получения элемента из вложенного объекта по его пути, — и интерфейс командной строки, устанавливаемый через необязательный extra.

Библиотека поддерживает Python 3.10 и новее, а также PyPy3. Необязательные зависимости, такие как PyYAML, tomli, orjson и pydantic, добавляют поддержку дополнительных форматов и ускоряют сериализацию. В последних версиях появились многопроцессорная обработка при сравнении и шаблоны с подстановочными знаками для exclude_paths и include_paths.

Ключевые возможности

  • 01Показывает добавленные, удалённые и изменённые элементы во вложенных данных и указывает их пути.
  • 02Ищет значения в произвольных вложенных объектах Python с помощью DeepSearch.
  • 03Вычисляет хеши объектов Python на основе их содержимого с помощью DeepHash.
  • 04Сохраняет различия в объектах Delta и применяет их для восстановления объектов.
  • 05Поддерживает шаблоны с подстановочными знаками для exclude_paths и include_paths.

Сценарии использования

  • Написание тестов для проверки совпадения сложных ответов API или объектов конфигурации.
  • Обнаружение изменений между версиями вложенных данных в формате JSON или YAML.
  • Отслеживание и повторное применение инкрементальных обновлений структурированного состояния.
  • Удаление дубликатов объектов по хешу содержимого.

Быстрый старт

  1. 1

    Установите DeepDiff из PyPI

    pip install deepdiff
  2. 2

    При необходимости установите дополнение для командной строки

    pip install "deepdiff[cli]"

Что важно знать

  • В метаданных лицензия указана как NOASSERTION, поэтому перед использованием ознакомьтесь с её условиями.
  • В README говорится, что проект теперь является частью Qluster; там также есть рекламное примечание о нём.

Темы

Частые вопросы

Что такое deepdiff?
Библиотека Python для глубокого сравнения вложенных объектов, поиска по ним, хеширования содержимого и хранения и применения различий в виде дельт. DeepDiff — библиотека Python для поиска различий между вложенными структурами данных, такими как словари, списки, множества, строки и произвольные объекты. Она сообщает, что было добавлено, удалено или изменено, и указывает путь к каждому изменению, чтобы разработчики могли точно определить, в чём расходятся два объекта.
deepdiff можно использовать бесплатно? Какая у него лицензия?
deepdiff распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
deepdiff всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в deepdiff — 18 сент. 2026 г..
Для чего можно использовать deepdiff?
Написание тестов для проверки совпадения сложных ответов API или объектов конфигурации. Обнаружение изменений между версиями вложенных данных в формате JSON или YAML. Отслеживание и повторное применение инкрементальных обновлений структурированного состояния. Удаление дубликатов объектов по хешу содержимого.
Как установить deepdiff?
Установите DeepDiff из PyPI: pip install deepdiff При необходимости установите дополнение для командной строки: pip install "deepdiff[cli]"
Где скачать deepdiff?
Исходный код и инструкции по установке — на GitHub: https://github.com/qlustered/deepdiff

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты