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

读取XML文件转换为字符串时遇编码错误的技术求助

解决XML转字符串时的LookupError问题

问题原因

你遇到的LookupError: unknown encoding: unicode是因为xml.etree.ElementTree.tostring()方法不支持将'unicode'作为编码参数值,该参数需要传入标准编码名称(如utf-8、ascii)。另外代码里还有一处疏漏:ET.parse()返回的是ElementTree对象,而tostring()需要传入具体的Element节点(通常是根节点)。

解决方法

以下两种方案均可解决问题:

方案一:获取字节流后解码为字符串

import xml.etree.ElementTree as ET

# 解析XML文件
tree = ET.parse('file.xsd')
# 获取根节点
root = tree.getroot()
# 生成UTF-8编码的字节流,再解码为字符串
xml_bytes = ET.tostring(root, encoding='utf-8')
xml_str = xml_bytes.decode('utf-8')

方案二:Python 3.9+ 直接返回字符串

如果你的Python版本是3.9及以上,可通过text=True参数让tostring()直接返回字符串类型:

import xml.etree.ElementTree as ET

tree = ET.parse('file.xsd')
root = tree.getroot()
# 直接返回字符串
xml_str = ET.tostring(root, encoding='utf-8', text=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:10:30