Skip to main content

jmespath-extensions

PyPI Python License

JMESPath with 400+ extension functions for strings, arrays, dates, hashing, encoding, and more.

This package provides Python bindings for jmespath-extensions, a Rust library that extends JMESPath with hundreds of additional functions.

Installation

pip install jmespath-extensions

Quick Start

import jmespath_extensions as jpx

# String functions
jpx.search("upper(name)", {"name": "alice"})
# 'ALICE'

# Math functions
jpx.search("sum(values)", {"values": [1, 2, 3, 4, 5]})
# 15

jpx.search("median(scores)", {"scores": [10, 20, 30, 40, 50]})
# 30

# Date/time functions
jpx.search("format_date(now(), '%Y-%m-%d')", {})
# '2024-01-15'

# Array functions
jpx.search("unique(items)", {"items": [1, 2, 2, 3, 3, 3]})
# [1, 2, 3]

jpx.search("chunk(items, `2`)", {"items": [1, 2, 3, 4, 5, 6]})
# [[1, 2], [3, 4], [5, 6]]

# Object functions
jpx.search("pick(user, ['name', 'email'])", {"user": {"name": "alice", "email": "a@b.com", "age": 30}})
# {'name': 'alice', 'email': 'a@b.com'}

# Hash functions
jpx.search("md5(password)", {"password": "secret"})
# '5ebe2294ecd0e0f08eab7690d2a6ee69'

# Fuzzy matching
jpx.search("levenshtein(a, b)", {"a": "kitten", "b": "sitting"})
# 3

Compiled Expressions

For repeated searches, compile the expression once:

import jmespath_extensions as jpx

# Compile once
expr = jpx.compile("users[?age > `18`].name | sort(@)")

# Use many times
expr.search({"users": [{"name": "alice", "age": 30}, {"name": "bob", "age": 16}]})
# ['alice']

expr.search({"users": [{"name": "charlie", "age": 25}, {"name": "dave", "age": 19}]})
# ['charlie', 'dave']

Function Discovery

import jmespath_extensions as jpx

# List all categories
jpx.list_categories()
# ['standard', 'string', 'array', 'object', 'math', 'type', 'utility', ...]

# List functions in a category
jpx.list_functions("string")
# ['upper', 'lower', 'trim', 'split', 'replace', 'camel_case', ...]

# Get function details
jpx.describe("upper")
# {
#     'name': 'upper',
#     'category': 'string',
#     'description': 'Convert string to uppercase',
#     'signature': 'string -> string',
#     'example': "upper('hello') -> \"HELLO\"",
#     'is_standard': False
# }

Function Categories

Category Examples
string upper, lower, trim, split, replace, camel_case, snake_case
array first, last, unique, chunk, zip, flatten, group_by
object pick, omit, deep_merge, flatten_keys, items, from_items
math round, sqrt, median, stddev, sum, avg, min, max
datetime now, format_date, parse_date, date_add, date_diff
hash md5, sha1, sha256, crc32
encoding base64_encode, base64_decode, hex_encode, url_encode
regex regex_match, regex_extract, regex_replace
fuzzy levenshtein, jaro_winkler, soundex, metaphone
geo geo_distance_km, geo_bearing
validation is_email, is_url, is_uuid, is_ipv4
uuid uuid (v4 generation)
ids nanoid, ulid

See the full documentation for all 400+ functions.

Compatibility with jmespath-py

This package is designed to be a drop-in enhancement for jmespath. All standard JMESPath functions work exactly as expected:

import jmespath_extensions as jpx

# Standard JMESPath still works
jpx.search("length(items)", {"items": [1, 2, 3]})
# 3

jpx.search("sort(items)", {"items": [3, 1, 2]})
# [1, 2, 3]

jpx.search("[?age > `18`]", [{"age": 20}, {"age": 15}])
# [{'age': 20}]

Performance

This package uses Rust under the hood via PyO3, providing near-native performance for JSON processing.

License

MIT OR Apache-2.0

Metadata

Release files for jmespath-extensions 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jmespath-extensions 0.9.0
File Size Uploaded Provenance Actions
jmespath_extensions-0.9.0.tar.gz 265.3 kB With provenance Details for jmespath_extensions-0.9.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for jmespath-extensions 0.9.0
File Actions
jmespath_extensions-0.9.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for jmespath_extensions-0.9.0-cp312-cp312-win_amd64.whl
jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details for jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
jmespath_extensions-0.9.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for jmespath_extensions-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
jmespath_extensions-0.9.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details for jmespath_extensions-0.9.0-cp312-cp312-macosx_10_12_x86_64.whl

Total release size: 14.0 MB

Release files / jmespath_extensions-0.9.0.tar.gz

Download URL jmespath_extensions-0.9.0.tar.gz
Size 265.3 kB
Tags Source
SHA-256 checksum
How to use checksums
241cdef5e767fd032142cfb57e65a04ae4ade76a545d08c0895fbb64b2b523d5
BLAKE2b-256 checksum
How to use checksums
7d5ce8e0934501af332a09edcd4f787ff7697d25021afc66fa9dc85ff49f08b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Release files / jmespath_extensions-0.9.0-cp312-cp312-win_amd64.whl

Download URL jmespath_extensions-0.9.0-cp312-cp312-win_amd64.whl
Size 2.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cc30c62e9ba47281dca90f4fba74acdb1d32f2311c783cccc2691f2726218a72
BLAKE2b-256 checksum
How to use checksums
39093d9c83eef7ef646f0fbb3ff8ee021d5715a83a7b9ed20150db239d510abb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Release files / jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5be63c875de15b7aa1b4d17b7da994673045257eb1d3d021a8ef9192b1e915af
BLAKE2b-256 checksum
How to use checksums
e7ce5ea49e75a23c3d4b76bedb5909a1206c69159c021e4f215b14f118254b2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Release files / jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL jmespath_extensions-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3f268445251ac1333a9962119f76a36b0fbeeb5f8588f7a583bc4d43b6eaf881
BLAKE2b-256 checksum
How to use checksums
f972db3f7d1a47d174de4c2332250dc5fcadeb39da749b621b98dc5b71a7ecc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Release files / jmespath_extensions-0.9.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL jmespath_extensions-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c87982e094e964db8795ecb6a4f34769351f7e71095af5fe3b2b29b1750a3158
BLAKE2b-256 checksum
How to use checksums
e6d5b4a218ba1320af520ece5aae38226f0cfe29e934e2b86bf9595259f8b03e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Release files / jmespath_extensions-0.9.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL jmespath_extensions-0.9.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d886baab86273cf998d30c59c001e47f1e0c1f53725bbade2157eb3e96b1ce7c
BLAKE2b-256 checksum
How to use checksums
244dea6bd3c530c367ca48c7e330929f847833036522a1512ed50559cb09e199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Security for jmespath-extensions 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for jmespath_extensions-0.9.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.9.0 This release

6 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page