6.jmespath表达式
# 一层嵌套取值
{a:1,b:2,c:3}
"""
取a的值:a
"""
# 多层嵌套取值
# 多层嵌套取值
{a:{b:3,c:4,d:{e:1}}}
"""
取a的值:a
取b的值:a.b
取e的值:a.d.e
"""
#跟python一样,通过下标取值
[a,b,c,d,e]
"""
取a的值:[0]
"""
{a:{
b:{
c:[
{d:[0,[1,2]]},
{e:[3,4]}
]
}
}
}
"""
取d里面为0的值:a.b.c[0].d[0]
取d里面为1的值: a.b.c[0].d[1][0]
"""
[0,1,2,3,4,5,6,7]
"""
与python切片一致:启点位置:终点位置:步长
取1~4的值:[1:5]
"""
{
a:[
{b:1,sss:3},
{c:2,sss:3},
{d:3,sss:3}
]
}
"""
取值列表中所有的key为sss的值:a[*].sss
取出列表中前二个sss对应的值:a[:2].sss
"""
{
ops:{
fcA:{num:1},
fcb:{num:2},
fcc:{sss:2}
}
}
"""
取出所有包含num的值:ops.*.num
"""
一般形式为:[? <表达式><比较器><表达式>]
常用的比较表达式:==,!=,<,<=,>,>=
{
lable:[
{name:a,state:run},
{name:b,state:stop},
{name:c,state:run}
]
}
"""
字符串必须用单引号
假设有3台机器,我们想要拿出所有正在运行的机器的名称
lable[?state=='run'].name
"""
{
a:[
{name:1,sss:3},
{name:2,sss:3},
{name:3,sss:3}
]
}
"""
取出a下面所有对象的name属性,从结果里面取第一个值
a.[*].name |[0]]
"""
{
a:[
{name:1,state:{sss:3},
{name:2,state:{sss:3},
{name:3,state:{sss:3}
]
}
"""
取出a里面所有的name的值 和sss的值,多个值用逗号隔开
[]是列表所有的值
a.[].[name,state.sss]
"""
{
a:[
{name:1,state:{sss:3},
{name:2,state:{sss:3},
{name:3,state:{sss:3}
]
}
"""
取出所有的name值,获取name值的数量
length(a.name)
"""
{
people:[
{name:a,age:18},
{name:b,age:19},
{name:c,age:29}
]
}
"""
取出age的最大值的name
max_by(people,&age).name
"""
{
people:[
{name:a,age:18},
{name:b,age:19},
{name:c,age:29}
]
}
"""
取出age的最小值的name
min_by(people,&age).name
"""
{
myattay:[
foo,
foobar,
bar,
baz
]
}
"""
在myarray中查询包含字符串foo的元素
myarray[?contaisn(@,'foo')==`true`]
"""
安装:pip3 install jmespath
#使用search jmespath表达式提供数据
body = {'code':0,data:[{name:a,age:1},{name:b,age:2}]}
import jmespath
#取出code
path = jmespath.search('code',body)
#取出第一个name
path = jmespath.search('data[0].name',body)
#取出name=a的数据
path = jmespath.search("data[?name='a']",body)
#取出年龄大于20的1数量
path = jmespath.search("length(data[?age>`20`])")
6.jmespath表达式的更多相关文章
- json jmespath的使用
在接口测试的过程中,我们经常会接触到json格式respones,我们会经常去做取JSON中某个值的操作,可以用jmespath分析.转换和选择性的提取JSON数据进行操作,功能非常强大,易读. 一. ...
- jmespath(1)基础语法
前言 JMESPath是JSON的查询语言.您可以从JSON文档中提取和转换元素 官方文档:https://jmespath.org/tutorial.html 基本表达式 JMESPath用的最多的 ...
- jmespath(2)投影Projections
投影 投影是JMESPath的关键特性之一.它允许您将表达式应用于元素集合.有五种投影: 列表投影 切片投影 对象投影 展平投影 过滤投影 处理投影需要注意的点 投影评估分为两个步骤.左侧(LHS)创 ...
- 【HttpRunner v3.x】笔记—6. 测试用例-teststeps-RunRequest
之前我们了解了config里的各项参数,今天来了解另一个重要部分--teststeps,在这之前,先看看测试用例的分层模型. 一.测试用例分层模型 一个testcase里(就是一个pytest格式的P ...
- JMeter关联陌生又熟悉
JMeter关联是什么 JMeter关联,这几个字看着可能会有点陌生,实际上却是工作中经常会做的一件事情,尤其是接口自动化,它指的是把一个接口的响应作为另一个接口的参数,从而把接口关联起来. JMet ...
- httprunner3.x全网最详细教程
一.所需环境 wiindows10以上 python3.6以上 httprunner3.1.6(最新版本) pycharm社区版 二.安装httprunner 1.卸载旧版本 卸载之前版本的命令为:p ...
- HttpRunner3的变量是如何传递的
HttpRunner3的变量可以在测试类的用例配置中通过variables添加,也可以在测试步骤中使用extract().with_jmespath()提取出来放到变量x,再用$x传递给下一个接口使用 ...
- Promtail Pipeline 日志处理配置
转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247492144&idx=1&sn=a1cc13a642 ...
- 7.httprunner-pytest风格用例
用例设计原则 py文件名以test_开头或者_test结尾 函数名以test_开头 类名以Test开头,并且不能有init初始化方法 所有的包pakege必须有_init_.py文件 pychar ...
随机推荐
- LuoguP1020 导弹拦截 (LIS)
最长不降和单升 #include <iostream> #include <cstdio> #include <cstring> #include <algo ...
- 理解 Flutter 的基础概念:Widget
Widget 的本意是组件的意思,熟悉 Web 应用开发的人在后期必定会接触到 Vue.React 等框架,这些框架都有一个核心的概念 -- 组件.组件的目的也很简单,那就是重复率用一段代码,并且能够 ...
- 虚拟机kali端口映射外网vps
前言:我们常用的kali系统一般都是在虚拟机里面运行,这样在真实环境中外网是访问不到你的kali攻击机的,这时候我们就需要给kali映射一个外网vps. 一.在vps启动frp 服务端 安装frp并解 ...
- C与C++有什么区别
C是一个结构化语言,它的侧重点在于算法和数据结构.对语言本身而言,C是C++的一个子集. C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理,得到输出. 对于C++,首要考虑的是如何构造一个 ...
- Sqoop 组件安装与配置
下载和解压 Sqoop Sqoop相关发行版本可以通过官网 https://mirror-hk.koddos.net/apache/sqoop/ 来获取 安装 Sqoop组件需要与 Hadoop环境适 ...
- Docker 环境 Nacos2 MySQL8
本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据. 1 拉取镜像 1.1 创建目录 在硬盘上创建 nacos 的有关目录: mkdir ...
- LibTorch 多项分布
最近在学习过程中需要对服从某种分布的离散型随机变量进行抽样,在LibTroch中查到了torch::multinomial(多项分布),该方法的接口如下: at::Tensor multinomial ...
- 从Spring中学到的【1】--读懂继承链
最近看了一些 Spring 源码,发现源码分析的文章很多,而底层思想分析的文章比较少,这个系列文章准备总结一下Spring中给我的启示,包括设计模式思想.SOLID设计原则等,涉及一些编程的基本原则, ...
- C#,启动exe程序并传参(参数间带&符号)方法
入参格式例如:C:\\Users\\Administrator\\Desktop\\测试\\测试\\bin\\Debug\\测试.exe type=1^&card_no=123 public ...
- ES配置生成SSL使用的证书
cd /usr/local/elasticsearch/bin/ ./elasticsearch-certgen ##################################### Pleas ...