Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7
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-jsonpathOrPipenv:
pipenv install -u python-jsonpathOr 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 minimal, slightly cleanr Python implementation of RFC 9535. If you're not interested JSONPath sytax beyond that defined in RFC 9535, you might choosejsonpath-rfc9535 overpython-jsonpath.
jsonpath-rfc9535 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
Contributing
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.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.