python獲取響應(yīng)某個字段值的3種實現(xiàn)方法
近期將要對兩個接口進(jìn)行測試,第一個接口的響應(yīng)值是第二個接口的查詢條件。為了一勞永逸,打算寫個自動化測試框架。因為請求和響應(yīng)都是xml格式的,遇到的問題就是怎么獲取xml響應(yīng)的某一個值。
嘗試了很多博客的方法,最終代碼實現(xiàn)如下:
#!/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})
#獲取響應(yīng)字符串的某一個值(可以對字符串采取下標(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ù),因為我調(diào)用這兩個函數(shù)一直報不存在此函數(shù)屬性,所以調(diào)用了re.findall函數(shù)
而今天在看視頻時,獲悉了兩種更簡單獲取響應(yīng)字符串某個值的方法,
個人感覺比正則表達(dá)式思維給簡潔,在此分享:
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ǔ)充知識:python進(jìn)行接口請求,第一個接口返回的數(shù)據(jù)作為第二個參數(shù)的入?yún)?/strong>
直接看代碼吧!
from operator import pos #導(dǎo)入包 定義要使用那個類
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)
返回數(shù)據(jù)為
200
{"code":0,"msg":"請求成功","userId":0,"token":null,"data":{"role":1,"videoPower":"1","snAuthPower":"1","userId":1,"token":"9f88cdad3c3b4e748e5367fb55cba90e"}}
9f88cdad3c3b4e748e5367fb55cba90e #第一個接口返回的數(shù)據(jù)
200
{"code":0,"msg":"請求成功","userId":0,"token":null,"data":null}
第一個接口返回的token數(shù)據(jù) 作為第二個接口token的入?yún)ⅰ?/p>
以上這篇python獲取響應(yīng)某個字段值的3種實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
pycharm 使用anaconda為默認(rèn)環(huán)境的操作
這篇文章主要介紹了pycharm 使用anaconda為默認(rèn)環(huán)境的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Django實現(xiàn)列表頁商品數(shù)據(jù)返回教程
這篇文章主要介紹了Django實現(xiàn)列表頁商品數(shù)據(jù)返回教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python Request爬取seo.chinaz.com百度權(quán)重網(wǎng)站的查詢結(jié)果過程解析
這篇文章主要介紹了Request爬取網(wǎng)站(seo.chinaz.com)百度權(quán)重的查詢結(jié)果過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題(三種解決方案)
這篇文章主要介紹了Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03

