阅读 191

json解析神器--jsonpath

标签:查找   取值   标示   子节点   意思   port   strong   tab   过程   

做自动化测试的过程中,如果返回的json层级较多,取值会相对来说比较麻烦,经常使用的取值方式就是:

1.按照固定的层级,一级一级的进行查找

2.使用正则表达式

3.也可以使用jsonpath进行查找----相对来说比较方便的一种方式

 

jsonpath详细解说:

1.首先安装jsonpath依赖包-------pip install jsonpath

2.jsonpath 表达式讲解

xpathjsonpath描述
/$根节点
.@现行节点
/.或者[]取子节点
..n/a取父节点(jsonpath不支持)
//..相对节点,不管位置,选择所有符合条件的条件
**匹配所有元素节点
[][]迭代器标示(可以在里面做简单的迭代操作,如,数组下标、根据内容选值)
&#124[,]支持迭代器中做多选
[]?()支持过滤操作
n/a()支持表达式操作
()n/a分组,jsonpath不支持

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用方法:

$ 符,是查找的根节点,传入的参数是Python的dict类型,如果查到对应的结果,则返回为list结果,如果未查找到对应的结果,返回false

实践方法如下:

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‘]#$..  -->表示的意思:根节点下的相对节点(也就是不管位置,选择所有符合条件的条件)-->如果未查找到相关的内容,则会返回Falseno = jsonpath.jsonpath(result, ‘$..mini13‘)print(no)   # 找不到是结果是 False

 

json解析神器--jsonpath

标签:查找   取值   标示   子节点   意思   port   strong   tab   过程   

原文地址:https://www.cnblogs.com/lucky1212/p/14356289.html


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐