Back to Explore

jmespath/jmespath.py

GitHub
1 watchersOpen source

Last release: 4 months ago

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

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 1.1.0

    4 months ago

    Release 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.

    Security
  • 1.0.1

    6/17/2022

    Release 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.

    Breaking
  • 1.0.0

    3/15/2022

    Release 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/2020

    Version 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.

    Breaking
  • 0.9.5

    2/24/2020

    Release 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/2019

    Version 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/2017

    Version 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/2017

    Version 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/2017

    Version 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.

    Features
  • 0.9.0

    10/1/2015

    Release 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.