使用Python解析REST响应

时间:2017-01-18 05:24:50

标签: python rest api parsing python-requests

我正在使用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;
&#13;
&#13;

从上面的结果,我想检索状态,NumOfErrors,NumOfLikelyProblems,NumOfPotentialProblems。 Beautifulsoup可以是一个解决方案,但我想以其他方式做到这一点。

1 个答案:

答案 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)"
      }
    }
  }
}

现在它只是一个字典,您可以访问键及其值。 我希望这能解决你的问题。