zoukankan      html  css  js  c++  java
  • 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值

    1 import jmespath
    2 b = {'a': {'b': {'c': {'d': 'value'}}}}
    3 result = jmespath.search("a.b.c.d",b)
    4 print(result )
     # 结果 'value'


    四.切片

    使用切片选择列表的连续子集。 JMESPath跟Python切片语法一样。你可以指定起始索引(包含)和结束索引(不包含),我们来看一些例子,通过切片提取下面这个数组:

     1 import jmespath
     2 
     3 list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     4 
     5 #从前到后或取3个元素
     6 list_result = jmespath.search('[0:3]',list)  
     7 print(list_result)
     8 
     9 # 结果 [0, 1, 2]
    10 
    11 # 获取列表中所有偶数
    12 doubule_list = jmespath.search('[::2]',list)  
    13 print(doubule_list)
    14 
    15 #结果 [0, 2, 4, 6, 8]

    五. 推测

    推测是JMESPath的关键特性之一,它允许你将表达式应用于元素集合。JMESPath有五种推测:

    • 列表推测
    • 切片推测
    • 对象推测
    • 展平推测
    • 过滤推测

    JMESPath内置了丰富的函数,可以在不同的数据类型上运行。

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

    jmespath官方API

    jmespath 在线提取检验器

  • 相关阅读:
    Eclipse和PyDev搭建完美Python开发环境(Windows篇)
    Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
    Java并发编程:Timer和TimerTask(转载)
    Java并发编程:并发容器之CopyOnWriteArrayList(转载)
    Java并发编程:阻塞队列
    深入理解Java的接口和抽象类
    Java并发编程:线程池的使用
    Java并发编程:同步容器
    Java并发编程:深入剖析ThreadLocal
    Java并发编程:volatile关键字解析
  • 原文地址:https://www.cnblogs.com/bu1tcat/p/10499485.html
Copyright © 2011-2022 走看看