python3字典:获取json响应值来进行断言
2018-06-18 02:58:21来源:未知 阅读 ()
转载请注明出处:https://www.cnblogs.com/shapeL/p/9051856.html
前言:在接口自动化测试中,最后都是需要将返回结果进行断言。本文按照实际情况举例说明字典各种操作,以及如何提取响应数据来进行断言
1.dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
获取第一层字典中的数据
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}} 2 print(dict['code'])
结果输出:
200
获取第二层字典中的数据:如果我们要获取value的值,查看发现value后的数据也是一个字典
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}} 2 print(dict['value']) 3 print(dict['value']['name'])
输出结果:
{'name': '嗯嗯', 'title': '36', 'value': '123'}
嗯嗯
也可以通过dict.get()来获取键对应的值
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}} 2 print(dict.get('code')) 3 print(dict.get('value').get('name'))
输出结果:
200
嗯嗯
dict.get()和dict['key']都可以用来获取键对应值,但是存在些许区别
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
2 print(dict.get('wo'))
3 print(dict['wo'])
1 None
2 Traceback (most recent call last):
3 File "C:/Users/zy/Documents/GitHub/python3/searchTest/test.py", line 3, in <module>
4 print(dict['wo'])
5 KeyError: 'wo'
原因:dict['key']只能获取存在的值,如果不存在则触发KeyError;dict.get(key, default=None),返回指定键的值,如果值不在字典中返回默认值None
2.dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
我们发现value的数据和1中的情况不同,可以获取value的值判断是什么类型的数据
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]} 2 print(type(dict['value']))
输出结果:
<class 'list'>
根据列表特性 索引来获取list[0]查看数据,发现列表中的每个元素是字典,又可以根据字典的特性获取到supplier的值
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]} 2 print(dict['value'][0]) 3 print(type(dict['value'][0]))
输出结果:
{'supplier': 'xyz', 'title': '我们在这里'}
<class 'dict'>
1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]} 2 print(dict['value'][0]['supplier'])
输出结果:
xyz
3.字典基本操作
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
1 # 遍历字典
2 for key in dict:
3 print(key + ':' + str(dict[key]))
4
5 输出结果:
6 code:200
7 message:
8 redirect:
9 value:{'name': '嗯嗯', 'title': '36', 'value': '123'}
1 #遍历字典的键key
2 for key in dict.keys():
3 print(key)
4
5 输出结果:
6 code
7 message
8 redirect
9 value
1 #遍历字典的值value
2 for value in dict.values():
3 print(value)
4
5 输出结果:
6 200
7
8
9 {'name': '嗯嗯', 'title': '36', 'value': '123'}
1 #遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
2 for item in dict.items():
3 print(item)
4
5 输出结果:
6 ('code', '200')
7 ('message', '')
8 ('redirect', '')
9 ('value', {'name': '嗯嗯', 'title': '36', 'value': '123'})
1 #修改键值
2 dict['message'] = 'ok'
3 print(dict)
4 #增加新的键/值
5 dict['wo'] = 'apple'
6 print(dict)
7 #输出键是'code'的条目
8 del dict['code']
9 print(dict)
10 #清空字典所有条目
11 dict.clear()
12 print(dict)
13 #删除字典
14 del dict
15 print(dict)
16
17 输出结果:
18 {'code': '200', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
19 {'code': '200', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}, 'wo': 'apple'}
20 {'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}, 'wo': 'apple'}
21 {}
22 <class 'dict'>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python操作字典(dict)
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- python3 enum模块的应用 2019-08-13
- Flask request接口获取参数 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash