jsondiff

2.2.1 · active · verified Mon Apr 06

jsondiff is a Python library designed to compare JSON and JSON-like structures, providing a detailed difference report. It is actively maintained, with its latest version being 2.2.1, and has a consistent release cadence with recent updates addressing bug fixes and new features.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to use `jsondiff.diff` to compare two JSON objects. It shows both the default compact output and the more verbose 'explicit' syntax, which leverages `jsondiff.symbols` to clearly identify insertions, deletions, and updates within the JSON structures.

from jsondiff import diff, symbols

json1 = {
    "name": "Alice",
    "age": 25,
    "city": "New York",
    "hobbies": ["reading", "hiking", "coding"]
}

json2 = {
    "name": "Bob",
    "age": 30,
    "city": "London",
    "occupation": "Engineer",
    "hobbies": ["reading", "running", "coding"]
}

# Basic diff (compact syntax by default)
compact_diff = diff(json1, json2)
print("Compact Diff:", compact_diff)

# Explicit diff (more detailed output with symbols)
explicit_diff = diff(json1, json2, syntax='explicit')
print("\nExplicit Diff:", explicit_diff)

# Accessing specific changes using symbols
if symbols.insert in explicit_diff:
    print("  Inserted keys:", explicit_diff[symbols.insert])
if symbols.delete in explicit_diff:
    print("  Deleted keys:", explicit_diff[symbols.delete])
if symbols.update in explicit_diff:
    print("  Updated keys:", explicit_diff[symbols.update])

view raw JSON →