每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试

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在线解析工具相关推荐

  1. json在线解析工具大集合

    ** json在线解析工具大集合 ** http://json.jsrun.net JSRUN推出的JSON视图工具,简洁易用,清晰明了. 可能是国内最好用的JSON工具了. http://jsonv ...

  2. json在线解析工具json formatter and json parser online

    json在线解析工具json formatter and json parser online, 推荐工具http://www.bestjson.com

  3. Json Parser Online - Json 在线解析工具 1

    Json Parser Online - Json 在线解析工具 1 http://json.parser.online.fr/ References https://yongqiang.blog.c ...

  4. 时间戳(Unix timestamp)转换工具 - 在线工具-和-在线解析JSON

    2019独角兽企业重金招聘Python工程师标准>>> 时间戳(Unix timestamp)转换工具 - 在线工具: https://tool.lu/timestamp/ 在线解析 ...

  5. java xml文件解析工具_Xml文件解析工具 - java

    解析Xml文件:就是把Xml文件里面的内容取出来. Xml文件解析工具:一个能解析Xml文件的类,即一个能把Xml文件里面的内容取出来的类. 先给出一个Xml文件(student_infor.xml) ...

  6. java的json解析工具_json文件解析工具类(java)

    附上java解析json文件内容的工具类 1.工具类 import com.alibaba.fastjson.JSONObject; import org.slf4j.Logger; import o ...

  7. HTML配色工具!在线配色工具

    url地址:   https://color.adobe.com/zh/create/color-wheel/ 编者前语: 很多刚开始编写网页的菜鸟,都不知道怎么搭配色彩,刚开始的时候,我也是这样的. ...

  8. 在线Cron表达式解析工具使用说明

    在日常Java开发中,常常会用到quartz定时器,而定时器的Cron表达式比较难以理解,尤其是复杂的表达式,较难分析出是否周期频率正确. 这里,云码网推出Cron在线解析工具,方便大家在线生成Cro ...

  9. github流程图_「强烈推荐」开源的在线流程图工具--draw.io

    作为开发者,画流程图是工作中经常遇到的事.你是否也在寻找一个免费的好用的流程图工具? 在线流程图工具,常用的有processon.com. lucidchart.com和我今天要推荐的draw.io. ...

最新文章

  1. Nginx 代理 WebSocket
  2. Hadoop: MapReduce2的几个基本示例
  3. 【dfs】【模拟】【树】I Like Matrix Forever!
  4. 大佬就是有想法!比尔盖茨办公室曝光:实体版元素周期表震撼!
  5. [CareerCup][Google Interview] Find kth number in a BST
  6. Css盒模型有哪几部分,标准盒模型和IE盒模型有哪些区别
  7. WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)
  8. Winform使用FTP实现自动更新
  9. 南京地铁行业发展策略与运营建设规模分析报告2022版
  10. CDD文件——CANdelaStudio
  11. Python3学习笔记十三
  12. 《大慈恩寺三藏法师传》简介
  13. V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!
  14. 2020最难求职年,程序员职场面试 “防坑指南” ,全员必备!
  15. 你听说过史莱姆吗??【oj】
  16. 极路由3HC5861刷openwrt
  17. EOS的中心化,该中国财团背锅吗?
  18. VTK:对输入的三维模型在某个方向等间距提取模型的切面轮廓线
  19. Exception in thread “main“ java.lang.NoSuchMethodError: scala.Predef$
  20. 数字电路 第四章 组合逻辑电路

热门文章

  1. JAVA 替换pdf中文字
  2. Shell脚本 一键重启
  3. ASP.NET 5个著名内容管理系统CMS
  4. 互联网快讯:喜茶回应上市;掌门教育、猿辅导转型素质教育
  5. 程序员吃的是青春饭?本质上取决于......
  6. 黑马程序员Java零基础视频教程_下部(P135-P200)
  7. Python3 - 函数
  8. wsl2安装ubuntu20.04
  9. NFS4中小企业存储实战
  10. 行业动态 - Thread Group 和 DiiA 携手打造商用建筑物联网照明的未来