liquidjsonpath 0.2.0
Liquid JSONPath
JSONPath selectors for Python Liquid.
Table of Contents
Installation
Links
Examples
License
Installation
Install JSONPath for Liquid using pip:
python -m pip install -U liquid-jsonpath
Or pipenv:
pipenv install liquid-jsonpath
Links
Docs: https://jg-rp.github.io/liquid/jsonpath/introduction
Change log: https://github.com/jg-rp/liquid-jsonpath/blob/main/CHANGES.md
PyPi: https://pypi.org/project/liquid-jsonpath/
Issue tracker: https://github.com/jg-rp/liquid-jsonpath/issues
Examples
Filter
This example adds the find filter to a Liquid environment. You can think of find as an advanced alternative to the standard map and where filters. It takes a JSONPath string argument and applies it to the filter's left value.
from liquid import Environment
from liquid_jsonpath import Find
env = Environment()
env.add_filter("find", Find())
data = {
"users": [
{
"name": "Sue",
"score": 100,
},
{
"name": "John",
"score": 86,
},
{
"name": "Sally",
"score": 84,
},
{
"name": "Jane",
"score": 55,
},
]
}
template = env.from_string("{{ data | find: '$.users.*.name' | join: ' ' }}")
print(template.render(data=data)) # Sue John Sally Jane
Tag
This example replaces the standard {% for %} tag with one that supports piping an iterable through a JSONPath expression.
from liquid import Environment
from liquid_jsonpath import JSONPathForTag
env = Environment()
env.add_tag(JSONPathForTag)
data = {
"users": [
{
"name": "Sue",
"score": 100,
},
{
"name": "John",
"score": 86,
},
{
"name": "Sally",
"score": 84,
},
{
"name": "Jane",
"score": 55,
},
]
}
template = env.from_string(
"{% for name in data | '$.users.*.name' %}"
"{{ name }}, "
"{% endfor %}"
)
print(template.render(data=data)) # Sue, John, Sally, Jane,
License
liquid-jsonpath is distributed under the terms of the MIT license.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.