首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python请求包:处理xml响应

Python请求包:处理xml响应
EN

Stack Overflow用户
提问于 2013-08-19 15:29:49
回答 2查看 150.5K关注 0票数 129

我非常喜欢requests包和它处理JSON响应的舒适方式。

不幸的是,我不知道我是否也能处理XML响应。有没有人有使用requests包处理XML响应的经验?是否有必要包含另一个用于XML解码的包?

EN

回答 2

Stack Overflow用户

发布于 2013-08-19 15:33:55

requests不处理解析XML响应,不。XML响应本质上比JSON响应复杂得多,如何将XML数据序列化为Python结构并不那么简单。

Python附带了内置的XML解析器。我建议您使用ElementTree API

代码语言:javascript
复制
import requests
from xml.etree import ElementTree

response = requests.get(url)

tree = ElementTree.fromstring(response.content)

或者,如果响应特别大,则使用增量方法:

代码语言:javascript
复制
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 project构建在相同的API之上,为您提供了更多的功能和功能。

票数 219
EN

Stack Overflow用户

发布于 2021-04-28 15:54:45

一种简单得多的方法是使用xmltodict包将XML转换为dict

代码语言:javascript
复制
response = requests.get('http://blabla.com')
dict_data = xmltodict.parse(response.content)

现在,dict_data,它只是一本Python字典。

你可以用pip安装它:pip install xmltodict

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18308529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档