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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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类型的字符串。

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/238935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前期只用到审批流程,好用的OA软件有哪几个?

“前期只用到审批流程,需要五六个人层层审批,最好审批流程是免费的,后期会扩展到其它功能,有适合我的软件吗?” 先来总结一下题主的需求: OA系统中审批流程最好是免费的流程需要层层审批后期能够扩展到其…

企业展厅 | OLED薄纸屏:屏幕与安装环境融为一体

企业展厅 | OLED薄纸屏:屏幕与安装环境融为一体 产品:55寸OLED柔性屏 项目时间:2023年11月 项目地点:浙江嘉兴 应用场景:通过OLED柔性屏具有色彩鲜艳、可弯曲等特性,满足对安装环境的灵活展示和需求&…

CTF V8 pwn入门(一)

仍然是因为某些原因,需要学学浏览器pwn 环境 depot_tools建议直接去gitlab里下,github上这个我用魔法都没下下来 下完之后执行 echo export PATH$PATH:"/root/depot_tools" >> ~/.bashrc路径换成自己的就ok了 然后是ninja git clo…

企业IT安全:内部威胁检测和缓解

什么是内部威胁 内部威胁是指由组织内部的某个人造成的威胁,他们可能会造成损害或窃取数据以谋取自己的经济利益,造成这种威胁的主要原因是心怀不满的员工。 任何内部人员,无论是员工、前雇员、承包商、第三方供应商还是业务合作伙伴&#…

商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c 鸿鹄云商

鸿鹄云商 SAAS云产品概述 【SAAS云平台】打造全行业全渠道全场景的SaaS产品,为店铺经营场景提供一体化解决方案;门店经营区域化、网店经营一体化,本地化、全方位、一站式服务,为多门店提供统一运营解决方案;提供丰富多…

智能优化算法应用:基于鸡群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于鸡群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于鸡群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸡群算法4.实验参数设定5.算法结果6.参考文献7.MA…

瑞盟OP07运算放大器可Pin to Pin兼容OP07

瑞盟 OP07 是一款低失调电压的运算放大器,它采用晶圆级的修调来消除失调,同时还可以通过外部电路进一步减小失调电压。可Pin to Pin兼容OP07。同时具有极低的偏置电流(只有 4nA)以及很高的开环增益(最小 200V/mV&#…

最新可运营版博客流量主小程序

源码简介 全新修复版的博客流量主小程序【运营版】,现在支持个人用户搭建自己的小程序,发布文章,还能通过查看文章和点击下载来观看广告。这个版本经过多次更新,解决了一些问题,让用户体验更加顺畅。 我们听到了你们…

生活中必不可缺的免费的解压文件APP

解压精灵 解压!我真的要极力推荐!! 手机软件商店里下载的解压软件只能免费解压几次?用几次就要开通vip才可以解压,给宝子们推荐一款免费的解压软件,速度是普通解压软件的数倍,并且免费无限使用&…

数学常识 公理·定义·定理·引理·推论的区别

数学常识 公理定义定理引理推论的区别 事先规定出来的公理(Axiom)定义(Definition) 推论出来的定理(Theorem)引理(Lemma)推论(Corollary) 逻辑图地址 事先规定…

HCIA-H12-811题目解析(9)

1、【单选题】下面选项中,能使一台IP地址为10.0.0.1的主机访问Interne的必要技术是? 2、【单选题】 FTP协议控制平面使用的端口号为? 3、【单选题】 使用FTP进行文件传输时,会建立多少个TCP连接? 4、【单选题】完成…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion 真人照片转动漫风格

相信我们很多人在看过动漫/动画后,都想看一看二次元世界中的自己长什么样子,那今天就以客户照片为例,说说我们如何用 Stable Diffusion,让 AI 帮我们将真实照片转成一个绝美二次元少女,Let’s do it~ 客户原图照片如下,希望转成二次元甜美少女。 1. 打开 Web UI …

卷积神经网络(CNN)中感受野的计算问题

感受野 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上每个像素点在原始图像上映射的区域大小,这里的原始图像是指网络的输入图像,是经过预处…

Java体系总结

Java体系总结 Java技术体系总结涵盖了Java基础(Java运行原理、运行环境、Java特性、集合、线程、JVM、SPI)、Netty框架、Https原理、Spring框架、SpringBoot框架的知识整理 目录 Java体系总结一、Java基础1、Java运行原理2、运行环境3、Java特性1&#x…

Liunx系统安装mysql数据库

一、环境检查 1、检查本地是否安装MySQL服务; 2、下载MySQL安装包; 3、查看下载的文件 4、解压MySQL文件 5、安装MySQL 6、检查MySQL数据库安装情况 7、启动MySQL 8、查看MySQL安装初始密码 9、登录MySQL 10、设置远程授权 11、关闭防火墙

??题-结构体两个人成绩比较输出分数高的【有问题,可是不知道在那里】

#include<stdio.h>struct stu{long int num;char name[10];double score;}a[2];int main(){ int i;for(i0;i<2;i)scanf("%ld,%s,%lf",&a[i].num,&a[i].name,&a[i].score);if(a[0].score>a[1].score)printf("分数高的学号和姓名是&…

STL--关联式容器底层实现

关联式容器从底层实现分为两类&#xff1a;①红黑树&#xff1a;set、map、multiset和multimap ②哈希&#xff1a;unordered_set、unordered_map、unordered_multiset和unordered_multimap。 一、红黑树 它是⼀种特殊的⼆叉查找树。红⿊树的每个节点上都有存储位表示节点的颜…

PNG素材,这6个网站全部免费下。

从事设计类工作的朋友在日常工作中&#xff0c;需要经常用到PNG免抠素材&#xff0c;为了给大家节省时间&#xff0c;提高工作效率&#xff0c;推荐6个我收藏的免抠素材网站&#xff0c;从此以后就能告别PS扣图啦&#xff0c;一定要收藏好。 1、菜鸟图库 https://www.sucai999…

【改进YOLOv8】杂草识别系统:融合YOLO-MS的MS-Block改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着人工智能技术的不断发展&#xff0c;计算机视觉领域的研究也取得了巨大的进展。目标检测是计算机视觉中的一个重要任务&#xff0c;它的应用范围广泛&#x…

可视化监控云平台/智能监控EasyCVR如何使用脚本创建ramdisk挂载并在ramdisk中临时运行

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防管理视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存…