json解析神器--jsonpath
2021-03-02 08:25
标签:查找 取值 标示 子节点 意思 port strong tab 过程 做自动化测试的过程中,如果返回的json层级较多,取值会相对来说比较麻烦,经常使用的取值方式就是: 1.按照固定的层级,一级一级的进行查找 2.使用正则表达式 3.也可以使用jsonpath进行查找----相对来说比较方便的一种方式 jsonpath详细解说: 1.首先安装jsonpath依赖包-------pip install jsonpath 2.jsonpath 表达式讲解 使用方法: $ 符,是查找的根节点,传入的参数是Python的dict类型,如果查到对应的结果,则返回为list结果,如果未查找到对应的结果,返回false 实践方法如下: json解析神器--jsonpath 标签:查找 取值 标示 子节点 意思 port strong tab 过程 原文地址:https://www.cnblogs.com/lucky1212/p/14356289.html
xpath
jsonpath
描述
/
$
根节点
.
@
现行节点
/
.或者[]
取子节点
..
n/a
取父节点(jsonpath不支持)
//
..
相对节点,不管位置,选择所有符合条件的条件
*
*
匹配所有元素节点
[]
[]
迭代器标示(可以在里面做简单的迭代操作,如,数组下标、根据内容选值)
|
[,]
支持迭代器中做多选
[]
?()
支持过滤操作
n/a
()
支持表达式操作
()
n/a
分组,jsonpath不支持
import jsonpath
result = {
"code": 0,
"data": [
{
"age": 20,
"create_time": "2020-12-12",
"id": 1,
"mail": "7048667795@qq.com",
"name": "mini",
"sex": "W"
},
{
"age": 21,
"create_time": "2019-12-16",
"id": 2,
"mail": "23233232323@qq.com",
"name": "mini12",
"sex": "M"
}
],
"msg": "success!"
}
#$. -->表示的意思:根节点下的子节点msg,所以输出结果为:success!
msg = jsonpath.jsonpath(result, ‘$.msg‘)
print(msg) # 输出结果 [‘success!‘]
#$.. -->表示的意思:根节点下的相对节点(也就是不管位置,选择所有符合条件的条件)-->输出结果是以列表的形式进行存储
names = jsonpath.jsonpath(result, ‘$..name‘)
print(names) # 输出结果 [‘mini‘, ‘mini12‘]
#$.. -->表示的意思:根节点下的相对节点(也就是不管位置,选择所有符合条件的条件)-->如果未查找到相关的内容,则会返回False
no = jsonpath.jsonpath(result, ‘$..mini13‘)
print(no) # 找不到是结果是 False
文章标题:json解析神器--jsonpath
文章链接:http://soscw.com/index.php/essay/58943.html