我非常喜欢requests
包及其方便的处理JSON响应的方式。
不幸的是,我不清楚是否可以处理XML响应。有没有人有使用requests
包处理XML响应的经验?是否需要另外安装一个用于XML解码的包?
我非常喜欢requests
包及其方便的处理JSON响应的方式。
不幸的是,我不清楚是否可以处理XML响应。有没有人有使用requests
包处理XML响应的经验?是否需要另外安装一个用于XML解码的包?
requests
不处理解析XML响应。XML响应的性质比JSON响应复杂得多,将XML数据序列化为Python结构不像JSON那样直截了当。
Python内置了XML解析器。 我建议您使用ElementTree API:
import requests
from xml.etree import ElementTree
response = requests.get(url)
tree = ElementTree.fromstring(response.content)
或者,如果响应特别大,可以采用增量方法:
response = requests.get(url, stream=True)
# if the server sent a Gzip or Deflate compressed response, decompress
# as we read the raw stream:
response.raw.decode_content = True
events = ElementTree.iterparse(response.raw)
for event, elem in events:
# do something with `elem`
外部lxml项目在同一API基础上构建,为您提供更多功能和更强大的功能。
一种更简单的方法是使用xmltodict包将XML转换为dict
。
response = requests.get('http://blabla.com')
dict_data = xmltodict.parse(response.content)
现在,dict_data
只是一个Python字典。
您可以使用pip进行安装:pip install xmltodict