您好,登錄后才能下訂單哦!
小編這次要給大家分享的是python怎么獲取響應某個字段值,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
近期將要對兩個接口進行測試,第一個接口的響應值是第二個接口的查詢條件。為了一勞永逸,打算寫個自動化測試框架。因為請求和響應都是xml格式的,遇到的問題就是怎么獲取xml響應的某一個值。
嘗試了很多博客的方法,最終代碼實現如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- import requests import re import unitest xmlhead=('xml格式報文頭') xmlhead=('xml格式報文體') result =request.post(url,data={'xmlhead':xmlhead,'xmlbody':xmlbody}) #獲取響應字符串的某一個值(可以對字符串采取下標切片方式,此處采用的是正則表達式) data='<key值>(.*?)</key值>' #將想要的值先用正則表達式替代 result_data=re.findall(data,result.text) #引入re模塊,利用正則表達式finall函數去響應字符串result.text里匹配。
最好用re.match()或re.search()函數,因為我調用這兩個函數一直報不存在此函數屬性,所以調用了re.findall函數
而今天在看視頻時,獲悉了兩種更簡單獲取響應字符串某個值的方法,
個人感覺比正則表達式思維給簡潔,在此分享:
result_json=result.json() #引入json模塊,將響應結果轉變為字典格式 response_data=result_json[父元素1][子元素2] #獲取想要的值
或
result_json=eval(result.text)[父元素1][子元素2]
#利用eval函數將字符串轉變為字典,在字典中獲取想要的value值
補充知識:python進行接口請求,第一個接口返回的數據作為第二個參數的入參
直接看代碼吧!
from operator import pos #導入包 定義要使用那個類 import requests import json url = 'http://123.56.22.39:48083/web/v2/user/userLogin' date={ 'userName':'admin', 'password':'admin' } r=requests.post(url=url,data=date) print(r.status_code) print(r.text) print(r.json()['data']['token']) url2 = 'http://123.56.22.39:48083/web/v2/user/logout' date1={ 'userId':1, 'token':r.json()['data']['token'] } r2 = requests.post(url=url2,data=date1) print(r2.status_code) print(r2.text)
返回數據為
200 {"code":0,"msg":"請求成功","userId":0,"token":null,"data":{"role":1,"videoPower":"1","snAuthPower":"1","userId":1,"token":"9f88cdad3c3b4e748e5367fb55cba90e"}} 9f88cdad3c3b4e748e5367fb55cba90e #第一個接口返回的數據 200 {"code":0,"msg":"請求成功","userId":0,"token":null,"data":null}
第一個接口返回的token數據 作為第二個接口token的入參。
看完這篇關于python怎么獲取響應某個字段值的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。