转载请注明出处: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响应值来进行断言的更多相关文章

  1. python3字典:获取json响应值来进行断言的用法详解

    在Python中我们做接口经常用到一些json的返回值我们常把他转化为字典,在前面的python数据类型详解(全面)中已经谈到对字典的的一些操作,今天我们就获取json返回值之后,然后转化为字典后的获 ...

  2. python2和python3,字典和json

    Python2的标准数据类型有: Numbers (数字) String (字符串) List (列表) Tuple (元组) Dictionary (字典) Python3的标准数据类型有: Num ...

  3. Android Volley获取json格式的数据

    为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...

  4. Python的字典和JSON

    Python的字典和JSON在表现形式上非常相似 #这是Python中的一个字典 dic = { 'str': 'this is a string', 'list': [1, 2, 'a', 'b'] ...

  5. python3 字典常见用法总结

    python3 字典常见用法总结 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表 ...

  6. Python 笔记(一)字典与json使用及注意点

    个人笔记系列,随便参考 1.python 中字典与json的差别 字典的生成 >>> a = dict(one=1, two=2, three=3) >>> b = ...

  7. Python中xml、字典、json、类四种数据的转换

    最近学python,觉得python很强很大很强大,写一个学习随笔,当作留念注:xml.字典.json.类四种数据的转换,从左到右依次转换,即xml要转换为类时,先将xml转换为字典,再将字典转换为j ...

  8. Python 学习 第16篇:数据类型(字典和Json)

    字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象. 字典有两个重要的特征: 字典是无序的,字典项没有特定的顺序,只能通过键来获取值: 字典是可变的,支持原处修改 ...

  9. ajax获取json数据 for select2

    json数据“a.json” [ { "id": "1", "text": "张三" }, { "id&quo ...

随机推荐

  1. CSS解决无空格太长的字母,数字不会自动换行的问题

    其实很简单,代码如下所示,注意 Style: <div class="detail_title" style="word-break: break-all;&quo ...

  2. Git错误一例

    Bitbucket一直不稳定,push, pull经常失效.幸好还有goagent可以用. 把git的全局配置改为走goagent代理,可以正常使用: [http] proxy = http://12 ...

  3. FPGrowth

    在挖掘关联规则的过程中,无可避免要处理海量的数据,也就是事务数据库如此之大,如果采用Apriori算法来挖掘,每次生成频繁k-项集的时候,可能都需要扫描事务数据库一遍,这是非常耗时的操作.那么,可以想 ...

  4. Leetcode_228_Summary Ranges

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46762039 Given a sorted integer ...

  5. 苹果新的编程语言 Swift 语言进阶(十三)--类型检查与类型嵌套

    一 类型检查 1. 类型检查操作符 类型检查用来检查或转换一个实例的类型到另外的类型的一种方式. 在Swift中,类型检查使用is和as操作符来实现. is操作符用来检查一个实例是否是某种特定类型,如 ...

  6. Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美

    Android绘图机制(四)--使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美 这里为什么不继续把自定义View写下去呢,因为最近项目 ...

  7. android 应用模式之mvp

    说到MVP就不得不提到MVC,做过J2EE的猿友们肯定知道MVC是个什么东西.MVC即 Model.View.Controller, 那MVP就Model.View.Presenter.Model用于 ...

  8. Spring 官网下载zip jar

    第一步:打开官网:http://www.springsource.org/download/community: 第二步:点击图片 第三步:点击图标 第四步:找到如下链接,点击进去 第五步:再找到如下 ...

  9. Ubuntu安装java的最简单的命令行方式

    由于经常要安装java,因此 深受其烦! 分为两部: 1. sudo apt-get install openjdk-7-jdk 2. sudo vim /etc/environment 然后把下面的 ...

  10. Eclipse RCP中超长任务单线程,异步线程处理

    转自:http://www.blogjava.net/mydearvivian/articles/246028.html 在RCP程序中,常碰到某个线程执行时间比较很长的情况,若处理不好,用户体验度是 ...