Skip to main content

A more powerful JSONPath implementation in modern python

Project description

jsonpath-python

A more powerful JSONPath implementation in modern python.

Features

  • Light. (No need to install third-party dependencies.)
  • Support basic semantics of JSONPath.
  • Support output modes: VALUE, PATH.
  • Support filter operator, including multi-selection, inverse-selection filtering.
  • Support sorter operator, including sorting by multiple fields, ascending and descending order.
  • Support parent operator.
  • Support user-defined function.

Examples

JSON format data:

data = {
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    }
}

Filter

>>> JSONPath('$.store.book[?(@.price>8.95 and @.price<=20 and @.title!="Sword of Honour")]').parse(data)
[
  {
    "category": "fiction",
    "author": "Herman Melville",
    "title": "Moby Dick",
    "isbn": "0-553-21311-3",
    "price": 8.99
  }
]

Sorter

>>> JSONPath("$.store.book[/(~category,price)]").parse(data)
[
  {
    "category": "reference",
    "author": "Nigel Rees",
    "title": "Sayings of the Century",
    "price": 8.95
  },
  {
    "category": "fiction",
    "author": "Herman Melville",
    "title": "Moby Dick",
    "isbn": "0-553-21311-3",
    "price": 8.99
  },
  {
    "category": "fiction",
    "author": "Evelyn Waugh",
    "title": "Sword of Honour",
    "price": 12.99
  },
  {
    "category": "fiction",
    "author": "J. R. R. Tolkien",
    "title": "The Lord of the Rings",
    "isbn": "0-395-19395-8",
    "price": 22.99
  }
]

Field-Extractor

>>> JSONPath("$.store.book[*](title,price)",result_type="FIELD").parse(data)
[
  {
    "title": "Sayings of the Century",
    "price": 8.95
  },
  {
    "title": "Sword of Honour",
    "price": 12.99
  },
  {
    "title": "Moby Dick",
    "price": 8.99
  },
  {
    "title": "The Lord of the Rings",
    "price": 22.99
  }
]

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-python-1.0.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jsonpath_python-1.0.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file jsonpath-python-1.0.1.tar.gz.

File metadata

  • Download URL: jsonpath-python-1.0.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12

File hashes

Hashes for jsonpath-python-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1ff2346c38322d8e98774af940543deb6f35d30531d8ec5fead287dd5a675ccf
MD5 8eda52a1758a481c358d4f766d826b26
BLAKE2b-256 25873ec24976e70d48a1833b71f3e45811e90307f63d9d245887a78eb3f374f9

See more details on using hashes here.

File details

Details for the file jsonpath_python-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: jsonpath_python-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12

File hashes

Hashes for jsonpath_python-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 619259cdb3e02b4a5c6a3b41a97acadd271beb6efa72cfcb07d753cbab4d55d5
MD5 42081066fcc0b077cce5c2bf86bee745
BLAKE2b-256 1139cef508dc5abf12b5f41c26ceabbe8c169117fb2aa5e68c8b491b527d53fa

See more details on using hashes here.

Supported by

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