Extensions for JSONPath RW
Project description
Extensions for JSONPath RW
jsonpath-rw-ext extends json-path-rw capabilities by adding multiple extensions. ‘len’ that allows one to get the length of a list. ‘sorted’ that returns a sorted version of a list, ‘arithmetic’ that permits one to make math operation between elements and ‘filter’ to select only certain elements of a list.
Each extensions will be proposed upstream and will stay here only if they are refused.
Free software: Apache license
Documentation: https://python-jsonpath-rw-ext.readthedocs.org/en/latest/
Quick Start
At the command line:
$ pip install jsonpath-rw-ext
Or, if you have virtualenvwrapper installed:
$ mkvirtualenv jsonpath-rw-ext $ pip install jsonpath-rw-ext
To replace the jsonpath_rw parser by this one with:
import jsonpath_rw_ext jsonpath_rw_ext.parse("$.foo").find(...)
Or:
from jsonpath_rw_ext import parser parser.ExtentedJsonPathParser().parse("$.foo").find(...)
The jsonpath classes are not part of the public API, because the name/structure can change when they will be implemented upstream. Only the syntax shouldn’t change.
Extensions
name |
Example |
---|---|
len |
|
sub |
|
split |
|
sorted |
|
filter |
|
arithmetic (-+*/) |
|
About arithmetic and string
Operations are done with python operators and allows types that python allows, and return [] if the operation can be done due to incompatible types.
When operators are used, a jsonpath must be be fully defined otherwise jsonpath-rw-ext can’t known if the expression is a string or a jsonpath field, in this case it will choice string as type.
Example with data:
{ 'cow': 'foo', 'fish': 'bar' }
About arithmetic and list
Arithmetic can be used against two lists if they have the same size.
Example with data:
{'objects': [ {'cow': 2, 'cat': 3}, {'cow': 4, 'cat': 6} ]}
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
Built Distribution
Hashes for jsonpath_rw_ext-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e863fd18954293d49003b7c742e5268f71a9b8a8d44da537252c63299a0a214 |
|
MD5 | b35c39f318999b4d93dacc749c396d75 |
|
BLAKE2b-256 | b8c8bd11c6b311bd690ced1c56480849eadf91d7644363a0a78bef8eb6e952aa |