溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python怎么獲取響應(yīng)某個(gè)字段值

發(fā)布時(shí)間:2020-07-29 11:03:55 來(lái)源:億速云 閱讀:365 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

小編這次要給大家分享的是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值>(.*&#63;)</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ò)的話,可以把它分享出去給更多人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI