python3字典:獲取json響應值來進行斷言

轉載請註明出處:http://www.javashuo.com/article/p-zptljecw-e.htmlhtml

前言:在接口自動化測試中,最後都是須要將返回結果進行斷言。本文按照實際狀況舉例說明字典各類操做,以及如何提取響應數據來進行斷言python

1.dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}}app

獲取第一層字典中的數據測試

1 dict = {'code': '200', 'message': '', 'redirect': '', 'value': {'name': '嗯嗯', 'title': '36', 'value': '123'}} 2 print(dict['code'])
結果輸出:
200

獲取第二層字典中的數據:若是咱們要獲取value的值,查看發現value後的數據也是一個字典spa

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()來獲取鍵對應的值code

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']均可以用來獲取鍵對應值,可是存在些許區別htm

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),返回指定鍵的值,若是值不在字典中返回默認值Noneblog

 

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'>
相關文章
相關標籤/搜索