JsonPath 是用来提取指定 JSON 文档的部分内容。 许多编程语言都提供的了对 json 的解析。JsonPath 对于 JSON 来说,相当于 XPath 对于 XML。
jsonpath安装方法:pip install jsonpath

操作符
操作符 和 描述
$ 查询根元素。这将开始所有路径表达式
@ 使用过滤谓词来处理当前节点。即过滤当前节点。
* 通配符。 任何可以使用名称和数字的地方都可以使用。
.. 深层扫描。 任何可以使用名称的地方都可以使用
.<name> 点,表示子节点。
['<name>' (, '<name>')]  括号 表示子项。
[<number> (, <number>)]  数组索引 或 索引
[start:end]  数组切片操作。
[?(<expression>)]  过滤表达式。 表达式的结果必须是一个 bool 值。

import jsonpath

data = {
    "status": 200,
    "msg": "success",
    "data": {
        "count":3,
        "list": [
            {
                "id": 25,
                "name": "商品1",
                "intro": "",
                "image": "c8a3204f0714910fd3e0b1d1d64f2ceb.jpg",
                "add_time": 1688039458,
                "is_show": 0,
            },
            {
                "id": 26,
                "name": "商品2",
                "intro": "",
                "image": "c8a3204f0714910fd3e0b1d1d64f2cec.jpg",
                "add_time": 1688039458,
                "is_show": 1,
            },
            {
                "id": 27,
                "name": "商品3",
                "intro": "",
                "image": "c8a3204f0714910fd3e0b1d1d64f2cec.jpg",
                "add_time": 1688039458,
                "is_show": 1,
            }
        ]
    }
}

print(jsonpath.jsonpath(data,'$.data')) #获取json中 data下所有元素
print(jsonpath.jsonpath(data,'$.data.count')) #获取json中 data下count值
print(jsonpath.jsonpath(data,'$.data.list[*].id')) #获取json中data下list下的所有id值
print(jsonpath.jsonpath(data,'$.data.list[0:2]')) #获取json中data下list下前两组数据
print(jsonpath.jsonpath(data,'$.data.list[2]')) #获取json中data下list数组的第3个值
print(jsonpath.jsonpath(data,'$.data.list[?(@.is_show==0)]')) #获取json中data下list数组中is_show等于0的所有值

点赞(19) 打赏

评论列表 共有 0 条评论

暂无评论
返回
顶部