jsonpath-ng
A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming.
Decision gist · record as of 2026-08-14
Yes. jsonpath-ng is a mature, actively maintained library (Production/Stable status, 735 stars) with zero known vulnerabilities, no runtime dependencies, and permissive licensing. It fills a genuine need for standards-compliant JSONPath parsing with AST manipulation capabilities. Install it if you need to query or modify JSON structures programmatically beyond simple key access.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python wheel with no runtime dependencies.
- Actively maintained as of 2026-02-24 with 735 repository stars and recent commits.
License · maintenance · safety
Apache 2.0 (permissive) — Apache 2.0 permissive license allows commercial and private use with minimal restrictions.
last release 2026-02-24 (171 days) · last repo commit 2026-08-01 · 735 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 72,852,742 downloads/mo, #457 on PyPI
Alternatives
Verify before relying
pip install jsonpath-ng
from jsonpath_ng import parse
jsonpath_expr = parse('foo[*].baz')
matches = jsonpath_expr.find({'foo': [{'baz': 1}, {'baz': 2}]})
print([match.value for match in matches])- Whether the package supports Python versions below 3.10 despite classifiers listing 3.10+ support
- Performance characteristics on large JSON documents or deeply nested structures
What it is and what it does
jsonpath-ng is a full JSONPath language implementation for Python that goes beyond simple regex-based extraction. It parses JSONPath expressions into first-class AST objects, allowing you to query, analyze, and transform JSON data programmatically. The library supports standard JSONPath syntax plus extensions like arithmetic operators, binary comparisons, and named operators such as `parent`. It merges functionality from jsonpath-rw and jsonpath-rw-ext, adding the ability to not just extract values but also update or remove nodes in the tree.
The package is designed for developers who need robust, standards-compliant JSON querying with full path tracking and metadata. Each match remembers its location in the source document, enabling automatic ID generation and parent traversal. You can build expressions either by parsing strings or by constructing them programmatically using classes like Fields, Slice, and Index, making it suitable for both interactive use and metaprogramming scenarios.
Use it for
- Extract nested values from API responses or configuration files using JSONPath syntax like `foo[*].baz`
- Batch update or remove fields across a JSON structure matching a specific path pattern
- Build dynamic JSON query tools where expressions are analyzed, transformed, or extended at runtime
- Generate automatic unique identifiers for JSON elements that lack explicit IDs using path-based fallbacks
- Validate or filter JSON documents by selecting nodes matching complex criteria with where clauses
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
jsonpath-ng is a mature, actively maintained library (Production/Stable status, 735 stars) with zero known vulnerabilities, no runtime dependencies, and permissive licensing. It fills a genuine need for standards-compliant JSONPath parsing with AST manipulation capabilities. Install it if you need to query or modify JSON structures programmatically beyond simple key access.
Install
jsonpath-ng on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained as of 2026-02-24 with 735 repository stars and recent commits.
License in practice
Apache 2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
pip install jsonpath-ng
from jsonpath_ng import parse
jsonpath_expr = parse('foo[*].baz')
matches = jsonpath_expr.find({'foo': [{'baz': 1}, {'baz': 2}]})
print([match.value for match in matches])
Verify before relying
- Whether the package supports Python versions below 3.10 despite classifiers listing 3.10+ support
- Performance characteristics on large JSON documents or deeply nested structures
Package facts
| License | Apache 2.0 permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 171 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 72,852,742 / month, #457 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: jsonpath_ng-1.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “extract values from json”
- jsonpath-ngParse, query, and modify JSON structures using JSONPath expressions…
- nietA command-line tool that extracts and transforms data from YAML,…
- jsonpath-pythonExtracts, filters, sorts, and updates values in JSON data using…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
Extracts, filters, sorts, and updates values in JSON data using JSONPath expressions, with zero third-party dependencies and pure Python string parsing.
Install it if you need practical JSONPath querying; if you require strict RFC 9535 compliance, verify the feature set first.
Parses and executes JSONPath expressions against JSON data, returning matched values and their full paths within the document structure.
No, not for new projects.
Extends JSONPath RW with additional query operations: len, sorted, filter, arithmetic, sub, and split functions for querying and transforming JSON data.
Queries JSON data using RFC 9535 JSONPath expressions, returning matched values with their locations and parent references.
However, note the 257-day gap since last release—maintenance appears inactive, so consider this if you need active bug fixes or feature development.
Implements RFC 9535-compliant JSONPath query evaluation, plus RFC 6901 JSON Pointer and RFC 6902 JSON Patch operations for Python.
ObjectPath is a query language for finding and extracting data from nested JSON documents using a syntax similar to XPath but with SQL-like expressiveness, arithmetic, and built-in functions.
See also bc-jsonpath-ng · robotframework-jsonlibrary · jmespath · jsonpath