jsonmerge
Merge a series of JSON documents.
What it is and what it does
jsonmerge combines multiple JSON documents into one, applying merge logic that you control via JSON schema annotations. By default, it merges objects by combining their fields and overwrites other types, but you can customize behavior per field using schema keywords like mergeStrategy (e.g., 'append' to concatenate arrays, 'version' to track historical values). The package depends on jsonschema and is designed for scenarios where different authors contribute to shared documents or where you need to track document evolution across revisions.
The library works by accepting a base document and a head document, then producing a merged result. You can chain multiple merges to build up a document from many sources. It also provides a way to generate an output schema that describes the structure of merged results, which may differ from the input schema when strategies like 'version' transform field types.
Use it for:
- Consolidating configuration files from multiple sources where some fields should append and others should overwrite.
- Tracking versioned changes to a document over time, keeping a limited history of field updates with metadata.
- Merging contributions from multiple authors into a shared JSON document template.
- Building incremental snapshots by repeatedly merging new revisions into a base document.
- Combining API responses or data exports from different systems into a unified structure.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Merges multiple JSON documents into a single document using configurable merge strategies applied via JSON schema keywords.
Yes, if you need schema-driven JSON merging and can tolerate an abandoned package. The library is stable (no known vulnerabilities, low install friction, permissive license), but you should validate input documents yourself and not expect bug fixes or compatibility updates. Best suited for internal tools or stable use cases where you control the merge logic and document structure.
Install
jsonmerge on PyPI
pip
pip install jsonmergeuv
uv add jsonmergepoetry
poetry add jsonmergeInstalling jsonmerge
Before you install
Low install friction with a single runtime dependency (jsonschema). However, the package is abandoned—last release was 2023-07-19 and no commits recorded since. No active maintenance means bug fixes or compatibility updates are unlikely.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions. You may use, modify, and distribute the package freely provided you retain the license notice.
Quickstart
pip install jsonmerge
from jsonmerge import merge
base = {"foo": 1, "bar": ["one"]}
head = {"bar": ["two"], "baz": "Hello, world!"}
result = merge(base, head)
Verify before relying
- Whether abandoned status affects real-world reliability for stable use cases (no recent vulnerabilities reported, but no active support).
- Compatibility with modern Python versions beyond what classifiers indicate (Python 2 and 3 listed, but no requires_python constraint specified).
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — jsonschema |
| Maintenance | abandoned — 1,122 days since the last release |
| First released | |
| Downloads | 1,313,042/month — #4,072 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jsonmerge-1.9.2-py3-none-any.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
deepmergeMerges nested Python data structures (dicts,…
permissive · top 5,000 on PyPI
mergedeepMerges nested dictionaries recursively,…
permissive · top 1,000 on PyPI
gensonGenSON generates JSON Schema documents from…
permissive · top 5,000 on PyPI
json-specImplements JSON Schema, JSON Pointer, and JSON…
permissive · top 15,000 on PyPI
json-source-mapMaps each value in a JSON document to its…
permissive · top 15,000 on PyPI
pytest-html-mergerMerges multiple pytest HTML reports generated…
unclear · top 15,000 on PyPI
merge3Implements 3-way merge of text sequences,…
copyleft · top 15,000 on PyPI
json-ref-dictProvides a dict-like interface to JSONSchema…
permissive · top 15,000 on PyPI
referencingResolves JSON references according to JSON…
permissive · top 100 on PyPI
sphinx-jsonschemaA Sphinx extension that renders JSON Schema…
copyleft · top 15,000 on PyPI