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