json jmespath的使用
在接口测试的过程中,我们经常会接触到json格式respones,我们会经常去做取JSON中某个值的操作,可以用jmespath分析、转换和选择性的提取JSON数据进行操作,功能非常强大,易读。
一. 安装
pip install jmespath
二. 基本表达式
- 标识符:最基本的表达式,提取单个属性值;
- 点表达式:提取JSON对象中的嵌套值;
- 索引表达式:选择列表中的特定元素
如果JSON中不存在标识符,则返回null值,我们来看一些例子:
----------------------------------------------------------------------------------------------------------------
json jmespath表达式 结果
{"a": {"b": {"c": {"d": "value"}}}} a.b.c.d “value”
["a", "b", "c", "d", "e", "f"] [2] "c"
----------------------------------------------------------------------------------------------------------------
三.查询一个key值
import jmespath
b = {'a': {'b': {'c': {'d': 'value'}}}}
result = jmespath.search("a.b.c.d",b)
print(result )
# 结果 'value'
四.切片
使用切片选择列表的连续子集。 JMESPath跟Python切片语法一样。你可以指定起始索引(包含)和结束索引(不包含),我们来看一些例子,通过切片提取下面这个数组:
import jmespath list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #从前到后或取3个元素
list_result = jmespath.search('[0:3]',list)
print(list_result) # 结果 [0, 1, 2] # 获取列表中所有偶数
doubule_list = jmespath.search('[::2]',list)
print(doubule_list) #结果 [0, 2, 4, 6, 8]
五. 推测
推测是JMESPath的关键特性之一,它允许你将表达式应用于元素集合。JMESPath有五种推测:
- 列表推测
- 切片推测
- 对象推测
- 展平推测
- 过滤推测
JMESPath内置了丰富的函数,可以在不同的数据类型上运行。
---------------------------------------------------------------------------------------------------------------------------------
json jmespath的使用的更多相关文章
- jmeter相关知识学习记录
基于Jmeter5.2.1 断言之响应断言 响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确. 测试字段就是指要断言的内容的匹配处. 响应文本:就是响应的body部分: ...
- JMeter关联陌生又熟悉
JMeter关联是什么 JMeter关联,这几个字看着可能会有点陌生,实际上却是工作中经常会做的一件事情,尤其是接口自动化,它指的是把一个接口的响应作为另一个接口的参数,从而把接口关联起来. JMet ...
- Promtail Pipeline 日志处理配置
转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247492144&idx=1&sn=a1cc13a642 ...
- 比jsonpath 更方便的json 数据查询JMESPath 使用
类似xml 的xpath json 有jsonpath 都是为了方便进行数据查询,但是jsonpath 的功能 并不是很强大,如果为了方便查询可以使用jmespath. 以下为简单使用: 查询格式 ...
- jmespath库解析json
在测试过程中,经常会去JSON中的某个值,jmespath可以是除了jsonpath的另外一种选择. 下面通过几个例子来说明jmespath在python的使用 jmespath python安装 非 ...
- 编写一个简单的基于jmespath 的prometheus exporter
目的很简单,因为系统好多监控指标是通过json 暴露的,并不是标准的prometheus metrics 格式,处理方法 实际上很简单,我们可以基于jsonpath 解析json数据,转换为prome ...
- 【jmespath】—3. 进阶 Object Projections
继续,来看Object Projections. 一.Object Projections 上面说的是列表投影,只适用于列表.那么对于json对象,可以用对象投影. 投影最终返回的仍然是个列表,只不过 ...
- 【jmespath】—2. 进阶 List and Slice Projections
Projections翻译的话说实话我也不知道翻成什么比较准确,姑且就叫"投影"吧,不过带来的功能确实非常的强大.好用. 首先,我先说下我的理解: 通配符 * 通配符生成的是一个l ...
- 【jmespath】—1. 基础用法
一.jsonpath 之前我写接口自动化测试时候,对于复杂的json返回,会使用jsonpath这个第三方库,就像写xpath一样,方便的查询json元素. 因为之前写WEB自动化时候,总用xpath ...
随机推荐
- Linux可以生产uImage
默认kernel只生产Image和zImage,若想让kernel生产uImage,需要用到mkimage,这个是uboot可以提供的,位于uboot/tool/目录下,将其加入到环境变量即可.
- Python练习三
1.使用while和for循环分别打印字符串s=’asdfer’中每个元素. s = "asdfer" index = 0 while index < int(len(s)) ...
- admin-2
Linux是一种服务器操作系统 操作系统:一堆软件的集合,可以让计算机硬件正常工作 • UNIX诞生,1970-1-1(Linux系统时间的起点) • Linux之父,Linus Torwalds 内 ...
- H5 实现图片上传预览
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- ARM Cortex M0 程序映像和启动流程
- dataframe基础
1 df[i] 其中i是0,1,2,3,... 此时选中的是dataframe的第i列 2 dataframe查看每一列是否有缺失值 temp = data.isnull().any() #列中 ...
- Ntrip协议简介(转)
原文地址:https://blog.csdn.net/sinat_19447667/article/details/67637167 1 什么是Ntrip? CORS(Continuously Ope ...
- JavaScript中数组的应用
Array的应用 1)创建 new Array();new Array(size);new Array(element,element,...,element); 2).Array对象属性 const ...
- 远程访问服务器tensorboard
转自https://blog.csdn.net/Hansry/article/details/83004648 1. 在登录远程服务器的时候使用命令: : server_name@server.add ...
- JVM-垃圾收集算法
新生代:复制算法,IBM研究过,约98%对象是“朝生夕死”,所以不需要按照1:1来划分:HotSpot中默认是8:1:1,即每次新生代可用空间为90%,只有10%会被“浪费”, 当Survivor空间 ...