pythonは、あるフィールド値に応答する3つの実装方法を取得します。


最近は二つのインターフェースをテストします。第一のインターフェースの応答値は第二のインターフェースのクエリ条件です。一労永逸のために、自動化テストの枠組みを書くつもりです。要求と応答は全部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.findll関数を呼び出しました。
今日はビデオを見ていて、応答文字列のある値をより簡単に取得する方法が二つあることが分かりました。
個人の感覚は正規表現よりも簡潔であり、ここで共有する。

result_json=result.json()   
#  json  ,            
response_data=result_json[   1][   2] 
#      
または
レスリングjson=eval(reult.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}
第1のインターフェースから返されたtokenデータは、第2のインターフェースtokenのエントリとして使用される。
以上のpythonは、あるフィールド値に応じた3つの実現方法を獲得しました。つまり、小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。