接口自动化多层嵌套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实现数通设备端口监控示例
Apr 02 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
举例讲解Python面相对象编程中对象的属性与类的方法
Jan 19 Python
python得到windows自启动列表的方法
Oct 14 Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 Python
Python3 列表,数组,矩阵的相互转换的方法示例
Aug 05 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
Python find()、rfind()方法及作用
Dec 24 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
Python 变量类型详解
2018/10/10 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python的等深分箱实例
2019/11/22 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
DELPHI中如何调用API,可举例说明
2014/01/16 面试题
项目资料员岗位职责
2013/12/10 职场文书
房地产推广策划方案
2014/05/19 职场文书
市场营销专业自荐书
2014/06/10 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL