Skip to main content

A selector expression for extracting data from JSON.

Project description

license Pypi Status Python version Package version PyPI - Downloads GitHub last commit Code style: black Build Status codecov

A selector expression for extracting data from JSON.

Quickstarts

Installation

Install the stable version from PYPI.

pip install jsonpath-extractor

Or install the latest version from Github.

pip install git+https://github.com/linw1995/jsonpath.git@master

Usage

{
    "goods": [
        {"price": 100, "category": "Comic book"},
        {"price": 200, "category": "magazine"},
        {"price": 200, "no category": ""}
    ],
    "targetCategory": "book"
}

How to parse and extract all the comic book data from the above JSON file.

import json

from jsonpath import parse

with open("example.json", "r") as f:
    data = json.load(f)

assert parse("$.goods[contains(@.category, $.targetCategory)]").find(
    data
) == [{"price": 100, "category": "Comic book"}]

Or use the jsonpath.core module to extract it.

from jsonpath.core import Root, Contains, Self

assert Root().Name("goods").Array(
    Contains(Self().Name("category"), Root().Name("targetCategory"))
).find(data) == [{"price": 100, "category": "Comic book"}]

Changelog

v0.2.0-alpha

  • 1be3dbf New:Add scripts/export_requirements_txt.sh

  • 56d09bd Chg:Upgrade dependencies

  • ba5868c Chg:Update GitHub Actions config

  • 944fe7b New:Add caches action

  • 8625aeb New:Upload release built from actions

  • b882c38 Chg:Use lark-parser to replace sly

  • dad27f8 Fix,Dev:CI err because of poetry install git dep

  • 1fd8c41 Chg:Replace tab with space in grammar.lark

  • e1a73a4 Chg:more specific type annotation

  • 9dbbdfb Chg:Upgrade lark to 0.8.1

  • b62b848 Chg:Rafactoring for reducing non-neccessory code

  • b84fb93 Fix:Not raise JSONPath undefined function error explicitly

  • d9ff6f6 Chg:Use type.__new__ to overwrite expr’s find method

  • 3b8d41d Chg:Refactoring for reducing the duplicated code

  • ce42257 New:Create docs by sphinx

  • bb31c2c Fix,Dev:lint docs error

  • b09ec5e New,Dev:Watch related files, build and serve Sphinx documentation automatically.

  • a078e8f Fix,Dev:Isort error

  • db56773 New,Dev:Test with doctest by pytest

  • 48ad21c Fix,Dev:shell function not inherits envs of parent process

  • 28a4fc0 Fix,Dev:lint error

  • a78fdf8 Fix,Dev:Live reload docs error due to .venv/bin/python not setting env-values

  • 2995f46 New,Doc:API reference

  • d918d80 Chg,Doc:Update quickstarts.rst

  • f18d92c New:Add .readthedocs.yaml for docs deployment

  • e6b7576 New,Doc:Translate :py:mod: directive into link

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsonpath-extractor-0.2.0a0.tar.gz (14.0 kB view hashes)

Uploaded Source

Built Distribution

jsonpath_extractor-0.2.0a0-py3-none-any.whl (13.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page