ReJD (Representation JSON Data) - Python library that changes your "JSON-like" data representation.
The small library will help you pull data from an input object using JSONPath and generate new objects according to a schema.
JSONPath is like XPath (XML) for JSON. To learn the syntax, read the documentation for the original article.
pip install rejd
Or you can install it from GitHub:
pip install -e git+https://github.com/rejd-tools/rejd-python.git
schema = { "source": "$", # root data (initial_data) "type": "object", "properties": { # fields schema for the new object "field1": { "source": "@.field1 * 2", # JSONPath "type": "float" }, "field2": { "source": "@.array", "type": "array", "items": { "source": "@.number" } } } } data = { "field1": 1.5, "array": [ {"number": 1}, {"number": 2} ] } assert transform(schema, data) == { "field1": 3.0, "field2": [1, 2] } Just run pytest to run unit tests.
Or you can use pre-commit to check and fix any issues: pre-commit run --all
Apache License 2.0 (See LICENSE)