接口自动化多层嵌套json数据处理代码实例


Posted in Python onNovember 20, 2020

最近在做接口自动化测试,响应的内容大多数是多层嵌套的json数据,在对响应数据进行校验的时候,可以通过(key1.key2.key3)形式获取嵌套字典值的方法获取响应值,再和预期值比较

keys_list = keys.split('.')
  #以“.”为间隔,将字符串分裂为多个字符串,其实字符串为字典的键,保存在列表keys_list里
  if isinstance(date,dict):
    #如果传入的数据为字典
    dictionary = dict(date)
    #初始化字典
    for i in keys_list:
      #按照keys_list顺序循环键值
      try:
        if dictionary.get(i) != None:
          dict_values = dictionary.get(i)
        #如果键对应的值不为空,返回对应的值
        elif dictionary.get(i) == None:
          dict_values = dictionary.get(int(i))
        #如果键对应的值为空,将字符串型的键转换为整数型,返回对应的值
      except:
        return default
          #如果字符串型的键转换整数型错误,返回None
      dictionary = dict_values
    return dictionary
  else: 
    #如果传入的数据为非字典
    try:
      dictionary = dict(eval(date))
      #如果传入的字符串数据格式为字典格式,转字典类型,不然返回None
      if isinstance(dictionary,dict):
        for i in keys_list:
          #按照keys_list顺序循环键值
          try:
            if dictionary.get(i) != None:
              dict_values = dictionary.get(i)
            #如果键对应的值不为空,返回对应的值
            elif dictionary.get(i) == None:
              dict_values = dictionary.get(int(i))
            #如果键对应的值为空,将字符串型的键转换为整数型,返回对应的值
          except:
            return default
              #如果字符串型的键转换整数型错误,返回None
          dictionary = dict_values
        return dictionary
    except:
      return default

运行结果:

一:字典类型数据。

接口自动化多层嵌套json数据处理代码实例

二:字典类型数据,包含的键为数字。

接口自动化多层嵌套json数据处理代码实例

三:json类型的字符串。

接口自动化多层嵌套json数据处理代码实例

有个朋友分享过这段代码,大家可以试试。

class obj(object):
  def __init__(self, d):
    for a, b in d.items():
      if isinstance(b, (list, tuple)):
        setattr(self, a, [obj(x) if isinstance(x, dict) else x for x in b])
      else:
        setattr(self, a, obj(b) if isinstance(b, dict) else b)

d = {'a':1, 'b':{'c':2}, 'd':[{'e':1}]}

res = obj(d)
print res.a
print res.b.c
print res.d[0].e

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中os.path用法分析
Jan 15 Python
用Python编写分析Python程序性能的工具的教程
Apr 01 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
python 获取当天每个准点时间戳的实例
May 22 Python
python实现自动登录
Sep 17 Python
python监控nginx端口和进程状态
Sep 06 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
Python基础之Socket通信原理
Apr 22 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 #Python
Django vue前后端分离整合过程解析
Nov 20 #Python
基于Python的图像阈值化分割(迭代法)
Nov 20 #Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 #Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 #Python
python IP地址转整数
Nov 20 #Python
Python django框架 web端视频加密的实例详解
Nov 20 #Python
You might like
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
python常见的格式化输出小结
2016/12/15 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
获奖的大学生创业计划书
2014/01/05 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript