【发布时间】:2015-05-18 10:28:11
【问题描述】:
我在将 XML 从字符串直接解析为元素时遇到了一些麻烦。 我有一个已转换为字符串的 xml 文件:
resp = requests.post(request_url, request_string, proxies=urllib.getproxies(), stream=True)
正如这里推荐的:https://stackoverflow.com/a/25023776/1551810,我使用了内容而不是文本:
response_tree = ET.fromstring(resp.content)
我显然在 XML 文件中有语法错误:
XMLSyntaxError: Input is not proper UTF-8, indicate encoding !
Bytes: 0xB0 0x20 0x4E 0x6F, line 12, column 35
我尝试对内容进行编码,但无济于事:
ET.fromstring(resp.content.encode('utf8'))
我的 XMLSYntaxError 与以前相同。 谁能帮我? 我已经为此花费了两个小时。
【问题讨论】:
-
注释说它是not utf-8,所以你需要弄清楚数据实际上是什么编码,然后要么转码(从编码解码,然后编码为 utf-8),或指定适当的 xml-header
-
谢谢你的快速回答,数据是一个字符串,我解码了它。我现在有一个 UnicodeDecodeError。你能发展你的想法吗?
-
非常类似于这个PHP问题:stackoverflow.com/questions/2507608/…;正如@deets 建议的那样,您需要按顺序获取编码
-
好的,谢谢!我想我解决了。
标签: python xml unicode elementtree