zoukankan      html  css  js  c++  java
  • python的Jsonpath模块的使用

    我们在用python做接口测试工作的时候很多接口返回的都是json格式的数据,想要操作这种数据有多种方式:

    1.通过正则表达式提取;

    2.通过python的字符串拆分;

    3.通过JsonPath语法操作;

    如果操作的响应数据时json格式那jsonpath应该是最方便的一种方式;

    第一步:导包:jsonpath

    import jsonpath

    第二步通过jsonpath语法操作json数据:jsonpath.jsonpath(数据,jsonpath语法)

    1 # 从json文件中读取数据
    2 with open("./source_file/info.json",'r',encoding='utf-8')as fp:
    3     data = json.load(fp)
    4     print(data,"<--->",type(data))  # {'username': '张三', 'age': 20, 'sex': '男'} <---> <class 'dict'>
    5 
    6 # 从数据中取出username
    7 print("data-->",jsonpath.jsonpath(data, "$.username"))  # data--> ['张三']

    这里要注意只有从json文件中读取出的数据和接口明确返回了json数据,或者定义字典类型数据可以通过jsonpath进行操作,如果定义一个json字符串是无法通过jsonpath操作的

    自定义不同类型的数据

    dict1 = {"username": "张三", "age": 20, "sex": ""}      
    print(dict1,"<--->",type(dict1))
    dict2 = {'username': '张三', 'age': 20, 'sex': ''}
    print(dict2,"<--->",type(dict2))
    str1 = str({"username": "张三", "age": 20, "sex": ""})
    print(str1,"<--->",type(str1))
    str2 = str({'username': '张三', 'age': 20, 'sex': ''})
    print(str2,"<--->",type(str2))

     通过jsonpath去解析数据取出username的值

    1 print("dict1 -->", jsonpath.jsonpath(dict1, "$.username"))      # dict1 --> ['张三']
    2 print("dict2 -->", jsonpath.jsonpath(dict2, "$.username"))      # dict2 --> ['张三']
    3 print("str1 -->", jsonpath.jsonpath(str1, "$.username"))        # str1 --> False
    4 print("str2 -->", jsonpath.jsonpath(str2, "$.username"))        # str2 --> False

    更多的jsonpath语法请参考:https://www.cnblogs.com/XhyTechnologyShare/p/13906489.html

  • 相关阅读:
    docker 的基本使用
    yum 工具安装的程序默认目录与位置
    Tampermonkey 脚本记录
    Windows 安装配置sublime-text3与破解
    heidisql 轻量级工具
    ubuntu 系统配置静态IP地址
    linux 日志分析
    Windows 桌面整理工具
    高效实用Linux命令行
    物联网实验4 alljoyn物联网实验之手机局域网控制设备
  • 原文地址:https://www.cnblogs.com/XhyTechnologyShare/p/14317069.html
Copyright © 2011-2022 走看看