JMESPath is a query language for JSON, and the jmespath.py library lets Python code declaratively extract values from JSON-like data using JMESPath expressions. It’s useful for single or repeated lookups, with `search` for one-off queries and `compile` for reusing the same parsed expression, and it supports options and (experimental) custom functions.
Project status
- Actively maintained: The upstream repo has recent activity (last push on 2026-04-20) and a new tagged update (v1.1.0 on 2026-01-22), which indicates the project is still being worked on rather than being abandoned.
- Update cadence: Updates appear infrequent (for example, 1.1.0 in 2026, then 1.0.1 in 2022, with much older gaps earlier), so the trajectory looks like periodic maintenance and occasional fixes rather than a steady release train.
AI summary generated 2 weeks ago
Recent updates
1.1.0
4 months agoRelease 1.1.0 (per CHANGELOG content) focuses on a cache concurrency fix and Python version support updates. The code diff provided shows a substantial repo and CI/tooling reshuffle (workflows, docs/doc build files, and packaging manifest changes) beyond the functional bullets in the changelog.
Security1.0.1
6/17/2022Release 1.0.1 appears to be a maintenance update that mainly updates packaging and CI to support newer Python versions (3.10 and 3.11-dev). The only explicitly documented change in the repo content is dropping support for Python versions less than 3.7, but the code diff also includes behavior changes around boolean and numeric comparisons that are not described anywhere in the provided release notes.
Breaking1.0.0
3/15/2022Release 1.0.0 was published on 2022-03-15. No release notes content was provided, so no changes, fixes, or migration details can be extracted for developers.
0.10.0
5/12/2020Version 0.10.0 updates the project versioning and CI, adds a new test for cache thread safety, and changes internal cache clearing to avoid a race condition. It also adds deprecation warnings for older Python versions and updates CLI output encoding behavior.
Breaking0.9.5
2/24/2020Release 0.9.5 updates the project version metadata and CI/test configuration to add Python 3.8. The changelog claims the only change is fixing syntax warnings on Python 3.8, but the code diff also includes a behavioral adjustment in JMESPath boolean and integer special-casing logic.
0.9.4
2/24/2019Version 0.9.4 primarily addresses correctness issues in the JMESPath built-in functions `min_by` and `max_by` when the input array is empty, and in type handling for `null`. The functional code changes are small, but they affect runtime behavior and type validation outcomes.
0.9.3
5/26/2017Version 0.9.3 focuses on correctness fixes around numeric handling and function registration. It updates number recognition (including long and Decimal) and improves `to_number()` to accept scientific notation, while also addressing an issue where custom functions could interfere with the builtin function table.
0.9.2
3/10/2017Version 0.9.2 introduces a fix related to ordering comparators (like <, >) when operands are strings. The code change expands comparator type handling so string operands can be treated as comparable, restoring prior behavior.
0.9.1
1/26/2017Version 0.9.1 focuses on adding experimental custom function support, improving lexer and parser correctness for certain invalid inputs and operator handling, and fixing avg() on empty arrays. The repo also adds property-based tests (Hypothesis) and updates CI to report coverage.
Features0.9.0
10/1/2015Release 0.9.0 is published, but the publisher provided no release notes. As a result, there is no documented information here about new features, breaking changes, bug fixes, security, or migration steps.