python编辑工具——jsonpath在线解析工具
每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
01 Jsonpath的定义
JsonPath是一种简单的方法来提取给定JSON文档的部分内容。Jsonpath是跨语言的,很多语言都可以使用jsonpath,如Javascript,Python和PHP,Java。
JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。
02 案例
我们拿一个免费的地图接口为例,以下是接口的对应的内容:
Url地址:https://ditu.amap.com/service/regeo?longitude=121.04925573429551&latitude=31.315590522490712
请求方法:get请求
响应数据:json数据
03 工具准备
pycharm,json在线解析工具,jsonpath在线解析工具
Pycharm是python的编辑工具,这个大家自行下载
Json在线解析工具,网址如下:https://www.sojson.com/
jsonpath在线解析工具,网址如下:http://www.e123456.com/aaaphp/online/jsonpath/
因为响应结果的json数据如果很多,不是特别好看如何提取对应的数据,这时候可以利用json的在线解析工具,但是json数据的特点就是键被双引号包裹的。Reqeusts库获取的响应值是resp,他的resp.json()获取的是字典的类型,resp.text获取的是json字符串,所以把resp.text获取的数据粘贴到工具中进行转换,代码如下:
Json在线转换如图所示:
Jsonpath在线解析工作如下:
04 jsonpath语法
接下来我们来讲解一下常用的jsonpath的语法,其他的可以参考上面图片的JSONPATH expressions:
$ 代表整个json数据的值
. 代表的是层级关系,类似windows电脑的/
… 代表相对的层级关系,类似windows电脑的//
[索引] 如果是列表中获取其中的元素,就通过列表中的额索引值进行获取,索引值是从0开始的。
[0,1] 或者[start:end] 可以对列表进行切片获取对应的元素
[?(@.price)] 获取带有对应属性的键
[?(@.price<10)] 获取带有对应属性且对应属性的值具有某些特点的键
需求1:获取cross_list里面所有的name的值
$…name
免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦
需求2:获取cross_list中第二个元素的name值
$.data.cross_list[1].name
如果表达式书写不对,会显示匹配不成功,如下图所示
需求3:获取cross_list中前两个元素的name值
$.data.cross_list[:2].name
需求4:找出poi_list这个键所对应的值里面包含具有direction属性的值
$.data.poi_list[?(@.direction)]
需求5:找出cross_list的值里面的weight等于”130”的值
$.data.cross_list[?(@.weight==“130”)]
Python如何使用jsonpath:
首先下载python的第三方库
pip install jsonpath
Jsonpath的语法如下:
jsonpath.jsonpath()
参数:json对象,jsonpath表达式
返回值:列表
用python去解析jsonpath的代码如下
备注:jsonpath获取匹配到的结果都放在列表中保存,所以想得到里面的数据一定是要用索引值进行获取的。
因为json的跨语言和方便性,很多开发人员写的接口都比较喜欢返回json数据,所以我们在做接口自动化测试的时候经常会遇到对json数据进行解析的时候,比如对响应数据做断言,或者有接口依赖的场景的时候,需要做数据提取,这两种情况都会遇到jsonpath的解析。所以大家都做练习,好好掌握。
今日文章留言
Jsonpath的书写语法和python应用jsonpath的语法就讲到这了,大家有任何问题欢迎留言。
笔者跟大家分享一个福利!扫码回复【csdn码哥群】入软件测试自学交流群,可免费听技术讲座+领学习资料+视频课免费看
作者:码同学软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
python编辑工具——jsonpath在线解析工具相关推荐
- json在线解析工具大集合
** json在线解析工具大集合 ** http://json.jsrun.net JSRUN推出的JSON视图工具,简洁易用,清晰明了. 可能是国内最好用的JSON工具了. http://jsonv ...
- json在线解析工具json formatter and json parser online
json在线解析工具json formatter and json parser online, 推荐工具http://www.bestjson.com
- Json Parser Online - Json 在线解析工具 1
Json Parser Online - Json 在线解析工具 1 http://json.parser.online.fr/ References https://yongqiang.blog.c ...
- 时间戳(Unix timestamp)转换工具 - 在线工具-和-在线解析JSON
2019独角兽企业重金招聘Python工程师标准>>> 时间戳(Unix timestamp)转换工具 - 在线工具: https://tool.lu/timestamp/ 在线解析 ...
- java xml文件解析工具_Xml文件解析工具 - java
解析Xml文件:就是把Xml文件里面的内容取出来. Xml文件解析工具:一个能解析Xml文件的类,即一个能把Xml文件里面的内容取出来的类. 先给出一个Xml文件(student_infor.xml) ...
- java的json解析工具_json文件解析工具类(java)
附上java解析json文件内容的工具类 1.工具类 import com.alibaba.fastjson.JSONObject; import org.slf4j.Logger; import o ...
- HTML配色工具!在线配色工具
url地址: https://color.adobe.com/zh/create/color-wheel/ 编者前语: 很多刚开始编写网页的菜鸟,都不知道怎么搭配色彩,刚开始的时候,我也是这样的. ...
- 在线Cron表达式解析工具使用说明
在日常Java开发中,常常会用到quartz定时器,而定时器的Cron表达式比较难以理解,尤其是复杂的表达式,较难分析出是否周期频率正确. 这里,云码网推出Cron在线解析工具,方便大家在线生成Cro ...
- github流程图_「强烈推荐」开源的在线流程图工具--draw.io
作为开发者,画流程图是工作中经常遇到的事.你是否也在寻找一个免费的好用的流程图工具? 在线流程图工具,常用的有processon.com. lucidchart.com和我今天要推荐的draw.io. ...
最新文章
- Nginx 代理 WebSocket
- Hadoop: MapReduce2的几个基本示例
- 【dfs】【模拟】【树】I Like Matrix Forever!
- 大佬就是有想法!比尔盖茨办公室曝光:实体版元素周期表震撼!
- [CareerCup][Google Interview] Find kth number in a BST
- Css盒模型有哪几部分,标准盒模型和IE盒模型有哪些区别
- WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)
- Winform使用FTP实现自动更新
- 南京地铁行业发展策略与运营建设规模分析报告2022版
- CDD文件——CANdelaStudio
- Python3学习笔记十三
- 《大慈恩寺三藏法师传》简介
- V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!
- 2020最难求职年,程序员职场面试 “防坑指南” ,全员必备!
- 你听说过史莱姆吗??【oj】
- 极路由3HC5861刷openwrt
- EOS的中心化,该中国财团背锅吗?
- VTK:对输入的三维模型在某个方向等间距提取模型的切面轮廓线
- Exception in thread “main“ java.lang.NoSuchMethodError: scala.Predef$
- 数字电路 第四章 组合逻辑电路