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
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 hashes)
Built Distribution
Close
Hashes for jsonpath_python-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 619259cdb3e02b4a5c6a3b41a97acadd271beb6efa72cfcb07d753cbab4d55d5 |
|
MD5 | 42081066fcc0b077cce5c2bf86bee745 |
|
BLAKE2b-256 | 1139cef508dc5abf12b5f41c26ceabbe8c169117fb2aa5e68c8b491b527d53fa |