python獲取響應(yīng)某個(gè)字段值的3種實(shí)現(xiàn)方法
近期將要對(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 requestsimport reimport unitestxmlhead=(’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)樽值涓袷絩esponse_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)?/b>
直接看代碼吧!
from operator import pos #導(dǎo)入包 定義要使用那個(gè)類import requestsimport jsonurl = ’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>
以上這篇python獲取響應(yīng)某個(gè)字段值的3種實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題2. Android如何加載Base64編碼格式圖片3. 詳解Android studio 動(dòng)態(tài)fragment的用法4. 圖文詳解vue中proto文件的函數(shù)調(diào)用5. 什么是python的自省6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)7. vue 使用localstorage實(shí)現(xiàn)面包屑的操作8. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)9. Vuex localStorage的具體使用10. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟

網(wǎng)公網(wǎng)安備