Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork6
A flexible JSONPath engine for Python with JSON Pointer and JSON Patch
License
jg-rp/python-jsonpath
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A flexible JSONPath engine for Python.
We followRFC 9535 and test against theJSONPath Compliance Test Suite.
Table of Contents
Install Python JSONPath usingpip:
pip install python-jsonpath
OrPipenv:
pipenv install -u python-jsonpath
Or fromconda-forge:
conda install -c conda-forge python-jsonpath
- Documentation:https://jg-rp.github.io/python-jsonpath/.
- JSONPath Syntax:https://jg-rp.github.io/python-jsonpath/syntax/
- Change log:https://github.com/jg-rp/python-jsonpath/blob/main/CHANGELOG.md
- PyPi:https://pypi.org/project/python-jsonpath
- Source code:https://github.com/jg-rp/python-jsonpath
- Issue tracker:https://github.com/jg-rp/python-jsonpath/issues
JSONPath RFC 9535 - A Python implementation of JSONPath that follows RFC 9535 much more strictly. If you require maximum interoperability with JSONPath implemented in other languages - at the expense of extra features - choosejsonpath-rfc9535 overpython-jsonpath.
jsonpath-rfc9535 matches RFC 9535's JSONPath model internally and is careful to use the spec's terminology. It also includes utilities for verifying and testing theJSONPath Compliance Test Suite. Most notably the nondeterministic behavior of some JSONPath selectors.
JSON P3 - RFC 9535 implemented in TypeScript. JSON P3 does not include all the non-standard features of Python JSONPath, but does define some optionalextra syntax.
Ruby JSON P3 - RFC 9535, RFC 6901 and RFC 6902 implemented in Ruby.
importjsonpathdata= {"users": [ {"name":"Sue","score":100}, {"name":"John","score":86}, {"name":"Sally","score":84}, {"name":"Jane","score":55}, ]}user_names=jsonpath.findall("$.users[?@.score < 100].name",data)print(user_names)# ['John', 'Sally', 'Jane']
We include anRFC 6901 compliant implementation of JSON Pointer. See JSON Pointerquick start,guide andAPI reference
fromjsonpathimportpointerdata= {"users": [ {"name":"Sue","score":100}, {"name":"John","score":86}, {"name":"Sally","score":84}, {"name":"Jane","score":55}, ]}sue_score=pointer.resolve("/users/0/score",data)print(sue_score)# 100jane_score=pointer.resolve(["users",3,"score"],data)print(jane_score)# 55
We also include anRFC 6902 compliant implementation of JSON Patch. See JSON Patchquick start andAPI reference
fromjsonpathimportpatchpatch_operations= [ {"op":"add","path":"/some/foo","value": {"foo": {}}}, {"op":"add","path":"/some/foo","value": {"bar": []}}, {"op":"copy","from":"/some/other","path":"/some/foo/else"}, {"op":"add","path":"/some/foo/bar/-","value":1},]data= {"some": {"other":"thing"}}patch.apply(patch_operations,data)print(data)# {'some': {'other': 'thing', 'foo': {'bar': [1], 'else': 'thing'}}}
python-jsonpath
is distributed under the terms of theMIT license.
About
A flexible JSONPath engine for Python with JSON Pointer and JSON Patch
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.