跳转到主要内容

未提供项目描述

项目描述

jsonpath-rust-bindings

PyPI - Downloads GitHub Workflow Status (with event) GitHub Workflow Status (with event) piwheels (including prereleases)

此软件包包含jsonpath-rust库的Python绑定,由besok提供。

有关JsonPath本身的详细信息,请参阅此处

安装

pip install jsonpath-rust-bindings

用法

from jsonpath_rust_bindings import Finder

sample = {
    "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},
    },
    "expensive": 10,
}

queries = [
    '$.store.book[*].author',
    '$..book[?(@.isbn)]',
    '$.store.*',
    '$..author',
    '$.store..price',
    '$..book[2]',
    # '$..book[-2]',
    '$..book[0,1]',
    '$..book[:2]',
    '$..book[1:2]',
    '$..book[-2:]',
    '$..book[2:]',
    '$.store.book[?(@.price<10)]',
    '$..book[?(@.price<=$.expensive)]',
    "$..book[?(@.author ~= '.*Rees')].price",
    '$..*',
]

f = Finder(sample)

for query in queries:
    print(query, f.find(query), '\n')

# You will see a bunch of found items like
# $..book[?(@.author ~= '.*Rees')].price [JsonPathResult(data=8.95, path=Some("$.['store'].['book'][0].['price']"), is_new_value=False)]

JsonPathResult具有以下属性

  • data: 找到的值
  • path: 找到的值的路径
  • is_new_value: 该值是否为新值或原始值的副本

JsonPathResult不能从Python构建;它仅由Finder.find()返回。

注意事项

当前实现将原始PyObject数据克隆为serde Value时。每次创建新的Finder实例时都会发生这种情况。如果可能,请尝试重用相同的Finder实例进行查询。

此外,以下示例还展示了它带来的另一个后果

>>> original_object_i_want_to_mutate = {'a': {'b': 'sample b'}}
>>> from jsonpath_rust_bindings import Finder
>>> f = Finder(original_object_i_want_to_mutate)
>>> b_dict = f.find('$.a')[0].data
>>> b_dict
{'b': 'sample b'}
>>> b_dict['new'] = 42
>>> original_object_i_want_to_mutate
{'a': {'b': 'sample b'}}

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

jsonpath_rust_bindings-0.7.0.tar.gz (10.0 kB 查看哈希值)

上传时间 源代码

构建版本

jsonpath_rust_bindings-0.7.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.5+ i686

jsonpath_rust_bindings-0.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

jsonpath_rust_bindings-0.7.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ s390x

jsonpath_rust_bindings-0.7.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希)

上传于 PyPy manylinux: glibc 2.5+ i686

jsonpath_rust_bindings-0.7.0-cp312-none-win_amd64.whl (834.6 kB 查看哈希)

上传于 CPython 3.12 Windows x86-64

jsonpath_rust_bindings-0.7.0-cp312-none-win32.whl (758.3 kB 查看哈希)

上传于 CPython 3.12 Windows x86

jsonpath_rust_bindings-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

jsonpath_rust_bindings-0.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ s390x

jsonpath_rust_bindings-0.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ppc64le

jsonpath_rust_bindings-0.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARMv7l

jsonpath_rust_bindings-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

jsonpath_rust_bindings-0.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.5+ i686

jsonpath_rust_bindings-0.7.0-cp312-cp312-macosx_11_0_arm64.whl (920.4 kB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

jsonpath_rust_bindings-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl (973.8 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.12+ x86-64

jsonpath_rust_bindings-0.7.0-cp311-none-win_amd64.whl (834.0 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

jsonpath_rust_bindings-0.7.0-cp311-none-win32.whl (760.3 kB 查看哈希值)

上传于 CPython 3.11 Windows x86

jsonpath_rust_bindings-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

jsonpath_rust_bindings-0.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ s390x

jsonpath_rust_bindings-0.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ppc64le

jsonpath_rust_bindings-0.7.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARMv7l

jsonpath_rust_bindings-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

jsonpath_rust_bindings-0.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.5+ i686

jsonpath_rust_bindings-0.7.0-cp311-cp311-macosx_11_0_arm64.whl (920.9 kB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

jsonpath_rust_bindings-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl (975.2 kB 查看哈希值)

上传时间: CPython 3.11 macOS 10.12+ x86-64

jsonpath_rust_bindings-0.7.0-cp310-none-win_amd64.whl (834.1 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

jsonpath_rust_bindings-0.7.0-cp310-none-win32.whl (760.4 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86

jsonpath_rust_bindings-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

jsonpath_rust_bindings-0.7.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ s390x

jsonpath_rust_bindings-0.7.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ppc64le

jsonpath_rust_bindings-0.7.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARMv7l

jsonpath_rust_bindings-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

jsonpath_rust_bindings-0.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.5+ i686

jsonpath_rust_bindings-0.7.0-cp310-cp310-macosx_11_0_arm64.whl (921.0 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

jsonpath_rust_bindings-0.7.0-cp310-cp310-macosx_10_12_x86_64.whl (975.1 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.12+ x86-64

jsonpath_rust_bindings-0.7.0-cp39-none-win_amd64.whl (835.3 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

jsonpath_rust_bindings-0.7.0-cp39-none-win32.whl (759.4 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

jsonpath_rust_bindings-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

jsonpath_rust_bindings-0.7.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ s390x

jsonpath_rust_bindings-0.7.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ppc64le

jsonpath_rust_bindings-0.7.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARMv7l

jsonpath_rust_bindings-0.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

jsonpath_rust_bindings-0.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.5+ i686

jsonpath_rust_bindings-0.7.0-cp39-cp39-macosx_11_0_arm64.whl (922.2 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

jsonpath_rust_bindings-0.7.0-cp39-cp39-macosx_10_12_x86_64.whl (977.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.12+ x86-64

jsonpath_rust_bindings-0.7.0-cp38-none-win_amd64.whl (834.5 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

jsonpath_rust_bindings-0.7.0-cp38-none-win32.whl (760.8 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

jsonpath_rust_bindings-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

jsonpath_rust_bindings-0.7.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ s390x

jsonpath_rust_bindings-0.7.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ppc64le

jsonpath_rust_bindings-0.7.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ARMv7l

jsonpath_rust_bindings-0.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ARM64

jsonpath_rust_bindings-0.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.5+ i686

由以下组织支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面