You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python中requests返回的bytes响应转为易操作的可读格式?

解决XML响应的bytes格式转换与信息提取问题

第一步:将bytes格式响应转为可读XML字符串

requests库提供了便捷的编码处理方式:

  • 直接使用resp.text属性,它会自动根据响应头的编码信息解码bytes内容,得到标准字符串格式的XML:
    xml_str = resp.text
    
  • 如果自动解码出现问题,可手动指定XML中声明的编码(比如示例里的UTF-8)进行解码:
    xml_str = resp.content.decode('utf-8')
    

第二步:解析XML提取目标信息

Python标准库的xml.etree.ElementTree可以直接解析XML字符串,注意处理XML的命名空间(示例中XML带有xmlns="http://XXXX.io"属性):

import xml.etree.ElementTree as ET

# 解析XML字符串
root = ET.fromstring(xml_str)

# 定义命名空间映射,前缀可自定义(比如这里用ns)
ns_map = {'ns': 'http://XXXX.io'}

# 提取<status>标签的内容
status = root.find('ns:status', ns_map).text
print(status)  # 输出:AGT_VALIDATED

# 提取<id>下<code>标签的内容
code = root.find('ns:id/ns:code', ns_map).text
print(code)  # 输出:140012

可选方案:使用lxml库(需额外安装)

如果需要更强大的XML处理能力(比如XPath查询),可以使用lxml库:

  1. 先安装依赖:
    pip install lxml
    
  2. 示例代码:
    from lxml import etree
    
    root = etree.fromstring(xml_str)
    # 使用XPath查询,需指定命名空间
    status = root.xpath('//ns:status/text()', namespaces={'ns': 'http://XXXX.io'})[0]
    code = root.xpath('//ns:id/ns:code/text()', namespaces={'ns': 'http://XXXX.io'})[0]
    

内容的提问来源于stack exchange,提问作者kenshuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 20:10:59