python3字典:获取json响应值来进行断言
前言:在接口自动化测试中,最后都是需要将返回结果进行断言。本文按照实际情况举例说明字典各种操作,以及如何提取响应数据来进行断言
1.dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
获取第一层字典中的数据
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
print(dict['code'])
结果输出:
200
获取第二层字典中的数据:如果我们要获取value的值,查看发现value后的数据也是一个字典
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
print(dict['value'])
print(dict['value']['name'])
输出结果:
{'name': '嗯嗯', 'title': '36', 'value': '123'}
嗯嗯
也可以通过dict.get()来获取键对应的值
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
print(dict.get('code'))
print(dict.get('value').get('name'))
输出结果:
200
嗯嗯
dict.get()和dict[‘key’]都可以用来获取键对应值,但是存在些许区别
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
print(dict.get('wo'))
print(dict['wo'])
None
Traceback (most recent call last):
File "C:/Users/zy/Documents/GitHub/python3/searchTest/test.py", line 3, 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的值判断是什么类型的数据
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
print(type(dict['value']))
输出结果:
<class 'list'>
根据列表特性 索引来获取list[0]查看数据,发现列表中的每个元素是字典,又可以根据字典的特性获取到supplier的值
dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
print(dict['value'][0])
print(type(dict['value'][0]))
输出结果:
{'supplier': 'xyz', 'title': '我们在这里'}
<class 'dict'>
dict = {'code': '200', 'message': '', 'redirect': '', 'value': [{'supplier': 'xyz', 'title': '我们在这里'}]}
print(dict['value'][0]['supplier'])
输出结果:
xyz
3.字典基本操作
dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
遍历字典
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
for key in dict:
print(key + ':' + str(dict[key]))
输出结果:
code:200
message:
redirect:
value:{'name': '嗯嗯', 'title': '36', 'value': '123'}
遍历字典的键key
for key in dict.keys():
print(key)
输出结果:
code
message
redirect
value
遍历字典的值value
for value in dict.values():
print(value)
输出结果:
200
{'name': '嗯嗯', 'title': '36', 'value': '123'}
遍历字典的项,item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
for item in dict.items():
print(item)
输出结果:
('code', '200')
('message', '')
('redirect', '')
('value', {'name': '嗯嗯', 'title': '36', 'value': '123'})
#修改键值
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': '200', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}
{'code': '200', 'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}, 'wo': 'apple'}
{'message': 'ok', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}, 'wo': 'apple'}
{}
<class 'dict'>
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16760964.html