Skip to content

Get values from JSON objects using a path expression

License

Notifications You must be signed in to change notification settings

srittau/python-json-get

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python JSON Get

https://img.shields.io/github/workflow/status/srittau/python-json-get/Test%20and%20lint

Get values from JSON objects usings a path expression. Optional type checking is possible:

>>> from jsonget import json_get, json_get_default, JList
>>> j = {
...     "foo": {"num": 3.4, "s": "Text"},
...     "arr": [10, 20, 30],
... }
>>> json_get(j, "/foo/num")
3.4
>>> json_get(j, "/arr[1]")
20
>>> json_get(j, "/foo/unknown")
Traceback (most recent call last):
    ...
ValueError: JSON path '/foo/unknown' not found

Values are optionally checked against one of the following types: str, int, float, bool, list, and dict. Checking for null values is not supported:

>>> json_get(j, "/foo/num", str)
Traceback (most recent call last):
    ...
TypeError: wrong JSON type str != float

float will match any number, int will only match numbers without a fractional part:

>>> json_get(j, "/foo/num", float)
3.4
>>> json_get(j, "/foo/num", int)
Traceback (most recent call last):
    ...
TypeError: wrong JSON type int != float

Additionally, the type of list values can be checked:

>>> json_get(j, "/arr", JList(int))
[10, 20, 30]

json_get_default() can be used to return a default value if a given path does not exist:

>>> json_get_default(j, "/bar", "default value")
'default value'

About

Get values from JSON objects using a path expression

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages