jsondelta
Semantic diff of two JSON files. Key order is ignored, changes are reported by path, and exit codes make it CI-friendly. Python 3.9+, stdlib only.
$ jsondelta old.json new.json
~ server.port: 80 -> 8080
- features[2]: "beta"
+ owner: "ops"
$ jsondelta a.json b.json --unordered --ignore meta.updated
$ cat new.json | jsondelta old.json - --json
Options: --unordered (arrays as multisets), --ignore PATH (repeatable), --json, -q.
Exit codes: 0 identical, 1 differences, 2 bad input (invalid JSON, unreadable file).
Types matter: true vs 1 is a change.
Install: pip install jsondelta-cli (command: jsondelta) or copy jsondelta.py.
Tests
pytest (11 tests; Python 3.9 and 3.14).
Support
If this saves you time, you can donate via PayPal. MIT license.
Metadata
Release files for jsondelta-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jsondelta_cli-0.1.0.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jsondelta_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.1 kB
Release files / jsondelta_cli-0.1.0.tar.gz
| Download URL | jsondelta_cli-0.1.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2757708fa1a4bc5aee5c0b241449be1aee041a4775be069600e98fd7d209c58d
|
|
BLAKE2b-256 checksum How to use checksums |
d17174aa2d988bf792562ec4d84ee70585682826d16b52dbd17200e9ecdf6ca8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / jsondelta_cli-0.1.0-py3-none-any.whl
| Download URL | jsondelta_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3ad3fb434fcab7826ab336f24e4f3551c95d330fd3946d3763dbaa31b6520864
|
|
BLAKE2b-256 checksum How to use checksums |
e8b0ca476b0d0664dfd91e1fcfc8eb1077d710e9f7f7bd947a404130bbc06cbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|