A more powerful JSONPath implementation in modern python
Project description
jsonpath-python
A more powerful JSONPath implementation in modern python.
Features
- Light. (No need to install third-party dependencies.)
- Support basic semantics of JSONPath.
- Support output modes: VALUE, PATH.
- Support filter operator, including multi-selection, inverse-selection filtering.
- Support sorter operator, including sorting by multiple fields, ascending and descending order.
- Support parent operator.
- Support user-defined function.
Examples
JSON format data:
data = {
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
Filter
>>> JSONPath('$.store.book[?(@.price>8.95 and @.price<=20 and @.title!="Sword of Honour")]').parse(data)
[
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
}
]
Sorter
>>> JSONPath("$.store.book[/(~category,price)]").parse(data)
[
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
]
Field-Extractor
>>> JSONPath("$.store.book[*](title,price)",result_type="FIELD").parse(data)
[
{
"title": "Sayings of the Century",
"price": 8.95
},
{
"title": "Sword of Honour",
"price": 12.99
},
{
"title": "Moby Dick",
"price": 8.99
},
{
"title": "The Lord of the Rings",
"price": 22.99
}
]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jsonpath-python-1.0.1.tar.gz
(5.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jsonpath-python-1.0.1.tar.gz.
File metadata
- Download URL: jsonpath-python-1.0.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ff2346c38322d8e98774af940543deb6f35d30531d8ec5fead287dd5a675ccf
|
|
| MD5 |
8eda52a1758a481c358d4f766d826b26
|
|
| BLAKE2b-256 |
25873ec24976e70d48a1833b71f3e45811e90307f63d9d245887a78eb3f374f9
|
File details
Details for the file jsonpath_python-1.0.1-py3-none-any.whl.
File metadata
- Download URL: jsonpath_python-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
619259cdb3e02b4a5c6a3b41a97acadd271beb6efa72cfcb07d753cbab4d55d5
|
|
| MD5 |
42081066fcc0b077cce5c2bf86bee745
|
|
| BLAKE2b-256 |
1139cef508dc5abf12b5f41c26ceabbe8c169117fb2aa5e68c8b491b527d53fa
|