我非常喜欢这个requests
包及其处理 JSON 响应的舒适方式。
不幸的是,我不明白我是否也可以处理 XML 响应。有没有人体验过如何使用requests
包处理 XML 响应?是否需要包含另一个用于 XML 解码的包?
我非常喜欢这个requests
包及其处理 JSON 响应的舒适方式。
不幸的是,我不明白我是否也可以处理 XML 响应。有没有人体验过如何使用requests
包处理 XML 响应?是否需要包含另一个用于 XML 解码的包?
requests
不处理解析 XML 响应,不。XML 响应本质上比 JSON 响应复杂得多,如何将 XML 数据序列化为 Python 结构几乎没有那么简单。
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 上,为您提供更多功能和功能。
一个更简单的方法是dict
使用xmltodict包将 XML 转换为
response = requests.get('http://blabla.com')
dict_data = xmltodict.parse(response.content)
现在,dict_data
它只是一个 Python 字典。
您可以使用 pip 安装它:pip install xmltodict