python-jsonpath 解析神器
前言
jsonpath用来解析json数据使用的,是一种简单的方法来提取给定JSON文档的部分内容。JsonPath有许多编程语言,如Javascript,Python和PHP,Java。
JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。下面我把官网介绍的每个表达式用代码实现,可以更直观的知道该怎么用它。
环境安装
jsonpath是第三方模块,想要额外安装
pip install jsonpath
jsonpath语法规则
Xpath |
JSONPath |
描述 |
---|---|---|
/ |
$ |
跟节点 |
. |
@ |
现行节点 |
/ |
. or [] |
取子节点 |
.. |
n/a |
取父节点 JsonPath不支持 |
// |
.. |
相对节点 就是不管位置,选择所有符合条件的条件 |
* |
* |
匹配所有元素节点 |
[] |
[] |
迭代器标示(可以在里面做简单的迭代操作,如数组下标,根据内容选值等) |
| |
[,] |
支持迭代器中做多选 |
[] |
?() |
支持过滤操作 |
n/a |
() |
支持表达式计算 |
() |
n/a |
分组,JsonPath不支持 |
jsonpath使用示例
"""
Create by dell on 2020/10/4
作者 :wencheng
微信公众:自动化测试 To share
import jsonpath
jsonobj = {
"code": 0,
"msg": "success",
"data": {
"output": [
"id": "867899031136606",
"prediction": 0.698744767973,
"instances": []
"id": "867899031133728",
"prediction": 0.695468634754,
"instances": []
msg = jsonpath.jsonpath(jsonobj, '$.msg')
print("msg:%s" % msg)
print("================================")
data = jsonpath.jsonpath(jsonobj, '$.data')
print("data:%s" % data)
print("================================")
output = jsonpath.jsonpath(jsonobj, '$..output')