在接口测试的过程中,我们经常会接触到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内置了丰富的函数,可以在不同的数据类型上运行。

---------------------------------------------------------------------------------------------------------------------------------

jmespath官方API

jmespath 在线提取检验器

json jmespath的使用的更多相关文章

  1. jmeter相关知识学习记录

    基于Jmeter5.2.1 断言之响应断言 响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确. 测试字段就是指要断言的内容的匹配处. 响应文本:就是响应的body部分: ...

  2. JMeter关联陌生又熟悉

    JMeter关联是什么 JMeter关联,这几个字看着可能会有点陌生,实际上却是工作中经常会做的一件事情,尤其是接口自动化,它指的是把一个接口的响应作为另一个接口的参数,从而把接口关联起来. JMet ...

  3. Promtail Pipeline 日志处理配置

    转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247492144&idx=1&sn=a1cc13a642 ...

  4. 比jsonpath 更方便的json 数据查询JMESPath 使用

      类似xml 的xpath json 有jsonpath 都是为了方便进行数据查询,但是jsonpath 的功能 并不是很强大,如果为了方便查询可以使用jmespath. 以下为简单使用: 查询格式 ...

  5. jmespath库解析json

    在测试过程中,经常会去JSON中的某个值,jmespath可以是除了jsonpath的另外一种选择. 下面通过几个例子来说明jmespath在python的使用 jmespath python安装 非 ...

  6. 编写一个简单的基于jmespath 的prometheus exporter

    目的很简单,因为系统好多监控指标是通过json 暴露的,并不是标准的prometheus metrics 格式,处理方法 实际上很简单,我们可以基于jsonpath 解析json数据,转换为prome ...

  7. 【jmespath】—3. 进阶 Object Projections

    继续,来看Object Projections. 一.Object Projections 上面说的是列表投影,只适用于列表.那么对于json对象,可以用对象投影. 投影最终返回的仍然是个列表,只不过 ...

  8. 【jmespath】—2. 进阶 List and Slice Projections

    Projections翻译的话说实话我也不知道翻成什么比较准确,姑且就叫"投影"吧,不过带来的功能确实非常的强大.好用. 首先,我先说下我的理解: 通配符 * 通配符生成的是一个l ...

  9. 【jmespath】—1. 基础用法

    一.jsonpath 之前我写接口自动化测试时候,对于复杂的json返回,会使用jsonpath这个第三方库,就像写xpath一样,方便的查询json元素. 因为之前写WEB自动化时候,总用xpath ...

随机推荐

  1. SQL学习 存储过程&DUAL表

    CREATE OR REPLACE PROCEDURE 存储过程 转自 https://www.cnblogs.com/lideng/p/3427822.html oracle中dual表的用途介绍 ...

  2. Arch Linux 软件包的查询及清理

    包的查询及清理 列出所有本地软件包(-Q,query查询本地:-q省略版本号) $ pacman -Qq (列出有816个包) 列出所有显式安装(-e,explicitly显式安装:-n忽略外部包AU ...

  3. java_集合类_简

    Collection 来源于Java.util包,实用常用的数据结构,字面意思就是容器 主要方法 boolean add(Object o)添加对象到集合 boolean remove(Object ...

  4. [工作积累] TAA Ghosting 的相关问题

    因为TAA要使用上一帧的历史结果,那么在相机移动的时候,颜色就会有残留,出现ghosting(残影). 由于上一帧历史是累积的,是由上一帧的直接渲染结果和上上帧的结果做了合并,所以ghosting并不 ...

  5. Eclipse 中快捷键

    Ctrl + Shift + T   查看原生类定义

  6. 如何实现从Java入门到服务端项目开发的进阶?

    对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而言,应该对于学习时间.目标和内容规划有一个清晰的定 ...

  7. 20165308『网络对抗技术』Exp5 MSF基础应用

    20165308『网络对抗技术』Exp5 MSF基础应用 一.原理与实践说明 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实 ...

  8. 盘点海口最好吃的西餐厅top10

    Top 1:主厨的餐桌 餐厅地址:龙华区海秀路九号民航宾馆一楼大堂 主厨的餐桌Chef's Table是三位志同道合的大厨一起携手开办的西餐厅,正宗的西式料理.浓郁的浪漫气息,都是Chef's Tab ...

  9. 承接VR外包|AR外包|Unity3D外包|UE4外包(内附案例演示)

    北京团队长年承接VR/AR项目外包 咨询QQ:372900288  微信:liuxiang0884

  10. ORACLE 存储过程中保存用户自定义异常信息的一种方式

    1.创建错误日志表: create table REP_LOGS ( log_s_no NUMBER not null, log_date DATE default sysdate not null, ...