python3字典:获取json响应值来进行断言
转载请注明出处:https://www.cnblogs.com/shapeL/p/9051856.html
前言:在接口自动化测试中,最后都是需要将返回结果进行断言。本文按照实际情况举例说明字典各种操作,以及如何提取响应数据来进行断言
1.dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
获取第一层字典中的数据
dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': '123'}}
print(dict['code'])
结果输出:
200
获取第二层字典中的数据:如果我们要获取value的值,查看发现value后的数据也是一个字典
dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': '123'}}
print(dict['value'])
print(dict['value']['name'])
输出结果:
{'name': '嗯嗯', 'title': '36', 'value': '123'}
嗯嗯
也可以通过dict.get()来获取键对应的值
dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
print(dict.get('code'))
print(dict.get('value').get('name'))
输出结果:
200
嗯嗯
dict.get()和dict['key']都可以用来获取键对应值,但是存在些许区别
dict = {'code': '', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
print(dict.get('wo'))
print(dict['wo'])
None
Traceback (most recent call last):
File "C:/Users/zy/Documents/GitHub/python3/searchTest/test.py", line , in <module>
print(dict['wo'])
KeyError: 'wo'
原因:dict['key']只能获取存在的值,如果不存在则触发KeyError;dict.get(key, default=None),返回指定键的值,如果值不在字典中返回默认值None
2.dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
我们发现value的数据和1中的情况不同,可以获取value的值判断是什么类型的数据
dict = {'code': '', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
print(type(dict['value']))
输出结果:
<class 'list'>
根据列表特性 索引来获取list[0]查看数据,发现列表中的每个元素是字典,又可以根据字典的特性获取到supplier的值
dict = {'code': '', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
print(dict['value'][])
print(type(dict['value'][]))
输出结果:
{'supplier': 'xyz', 'title': '我们在这里'}
<class 'dict'>
dict = {'code': '', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
print(dict['value'][]['supplier'])
输出结果:
xyz
3.字典基本操作
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
# 遍历字典
for key in dict:
print(key + ':' + str(dict[key])) 输出结果:
code:
message:
redirect:
value:{'name': '嗯嗯', 'title': '', 'value': ''}
#遍历字典的键key
for key in dict.keys():
print(key) 输出结果:
code
message
redirect
value
#遍历字典的值value
for value in dict.values():
print(value) 输出结果: {'name': '嗯嗯', 'title': '', 'value': ''}
#遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
for item in dict.items():
print(item) 输出结果:
('code', '')
('message', '')
('redirect', '')
('value', {'name': '嗯嗯', 'title': '', 'value': ''})
#修改键值
dict['message'] = 'ok'
print(dict)
#增加新的键/值
dict['wo'] = 'apple'
print(dict)
#输出键是'code'的条目
del dict['code']
print(dict)
#清空字典所有条目
dict.clear()
print(dict)
#删除字典
del dict
print(dict) 输出结果:
{'code': '', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}}
{'code': '', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}, 'wo': 'apple'}
{'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '', 'value': ''}, 'wo': 'apple'}
{}
<class 'dict'>
python3字典:获取json响应值来进行断言的更多相关文章
- python3字典:获取json响应值来进行断言的用法详解
在Python中我们做接口经常用到一些json的返回值我们常把他转化为字典,在前面的python数据类型详解(全面)中已经谈到对字典的的一些操作,今天我们就获取json返回值之后,然后转化为字典后的获 ...
- python2和python3,字典和json
Python2的标准数据类型有: Numbers (数字) String (字符串) List (列表) Tuple (元组) Dictionary (字典) Python3的标准数据类型有: Num ...
- Android Volley获取json格式的数据
为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...
- Python的字典和JSON
Python的字典和JSON在表现形式上非常相似 #这是Python中的一个字典 dic = { 'str': 'this is a string', 'list': [1, 2, 'a', 'b'] ...
- python3 字典常见用法总结
python3 字典常见用法总结 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表 ...
- Python 笔记(一)字典与json使用及注意点
个人笔记系列,随便参考 1.python 中字典与json的差别 字典的生成 >>> a = dict(one=1, two=2, three=3) >>> b = ...
- Python中xml、字典、json、类四种数据的转换
最近学python,觉得python很强很大很强大,写一个学习随笔,当作留念注:xml.字典.json.类四种数据的转换,从左到右依次转换,即xml要转换为类时,先将xml转换为字典,再将字典转换为j ...
- Python 学习 第16篇:数据类型(字典和Json)
字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象. 字典有两个重要的特征: 字典是无序的,字典项没有特定的顺序,只能通过键来获取值: 字典是可变的,支持原处修改 ...
- ajax获取json数据 for select2
json数据“a.json” [ { "id": "1", "text": "张三" }, { "id&quo ...
随机推荐
- 插件化开发—动态加载技术加载已安装和未安装的apk
首先引入一个概念,动态加载技术是什么?为什么要引入动态加载?它有什么好处呢?首先要明白这几个问题,我们先从 应用程序入手,大家都知道在Android App中,一个应用程序dex文件的方法数最大不能超 ...
- 苹果新的编程语言 Swift 语言进阶(十)--类的继承
一.类的继承 类能够从其它类继承方法.属性以及其它特性,当一个类从另外的类继承时,继承的类称为子类,它继承的类称为超类.在Swift中,继承是类区别与其它类型(结构.枚举)的基础行为. 1.1 .类的 ...
- MVVM With ReactiveCocoa让移动开发更简单
作者:@雷纯锋2011 MVVM是一种软件架构模式,它是 Martin Fowler 的 Presentation Model 的一种变体,最先由微软的架构师 John Gossman 在 2005 ...
- Hadoop基本知识,(以及MR编程原理)
hadoop核心是:MapReduce和HDFS (对应着job执行(程序)和文件存储系统(数据的输入和输出)) CRC32作数据交验:在文件Block写入的时候除了写入数据还会写入交验信息,在读取 ...
- HTML中<base>标签的正确使用
HTML <base> 标签 1. 定义:<base> 标签是 HTML 语言中的基准网址标记,是一个单标签. 2. 作用:规定页面上所有链接的默认 URL 和默认目标. ...
- Web服务器Tomcat集群与负载均衡技术
我们曾经介绍过三种Tomcat集群方式的优缺点分析.本文将介绍Tomcat集群与负载均衡技术具体实施过程. 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的 ...
- Xshell 5 配置上传下载命令
可以在官网https://www.netsarang.com/products/main.html 下载Xshell, 目前最新的版本已经到Xshell 6了 本人记录下安装的目录截图: 安装命令: ...
- Eclipse下无法编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法
1. 确保 project->build automatically 已经被选上. 2. 如果选上了,也不好使, 使用这一招: project->clean..->选第2个clean ...
- jvm垃圾回收(三)
一.分代思想(年轻代.老年代.永久代): 1.一个新人(new对象)会优先在伊甸园(Eden区)出生,当伊甸园(Eden区)人口达到最大容量时,JVM会派MinorGC去看看哪些人还有价值 2.伊甸园 ...
- J2EE--常见面试题总结 -- (二)
1 Spring拦截器的基本功能是什么? 拦截器是基于Java的反射机制的,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单 ...