我正在使用python'请求'向服务器发送请求。结果作为REST响应返回。现在我需要得到响应对象的各个字段或部分,如.... 我的请求脚本如下:
import json
import requests
proxies = {
'http': 'http://10.10.80.12:3128',
'https': 'http://10.10.80.12:3128'
}
url = 'http://achecker.ca/checkacc.php'
payload = {'uri': 'https://www.google.com',
'id': 'XXXXXXXXXXXXXXXXXXXXXXXXXX',
'output': 'rest',
'guide': 'WCAG2-AA',
'offset': '10'
}
response = requests.get(url,params=payload,proxies=proxies)
print response.text
上述脚本返回的结果部分如下:
<resultset>
<summary>
<status>FAIL</status>
<sessionID>8e03e40492a7f16a2b63c47b07588f81c746faca</sessionID>
<NumOfErrors>2</NumOfErrors>
<NumOfLikelyProblems>1</NumOfLikelyProblems>
<NumOfPotentialProblems>113</NumOfPotentialProblems>
<guidelines>
<guideline>WCAG 2.0 (Level AA)</guideline>
</guidelines>
</summary>
</resultset>
&#13;
从上面的结果,我想检索状态,NumOfErrors,NumOfLikelyProblems,NumOfPotentialProblems。 Beautifulsoup可以是一个解决方案,但我想以其他方式做到这一点。
答案 0 :(得分:0)
您获得的回复是xml格式。您需要将以下xml字符串转换为字典。 对于上述任务,您可以使用xmltodict(https://github.com/martinblech/xmltodict)。 过程如下: -
import json
import xmltodict
response_text = response.text
response_dict = json.dumps(xmltodict.parse(response_text)).
上述答复的结果字典如下
{
"resultset": {
"summary": {
"status": "FAIL",
"sessionID": "8e03e40492a7f16a2b63c47b07588f81c746faca",
"NumOfErrors": "2",
"NumOfLikelyProblems": "1",
"NumOfPotentialProblems": "113",
"guidelines": {
"guideline": "WCAG 2.0 (Level AA)"
}
}
}
}
现在它只是一个字典,您可以访问键及其值。 我希望这能解决你的问题。