lxml.etree.XMLSyntaxError 韩语字符

问题描述 投票:0回答:1

我正在尝试解析 https://api.lever.co/v0/postings/matchgroup?mode=xml 但我收到错误

lxml.etree.XMLSyntaxError: CData section not finished
。看来问题是由包含韩国字符的数据引起的。

import lxml.etree                                                                                             
import io                                                                                                     
import requests
url = "https://api.lever.co/v0/postings/matchgroup?mode=xml"
r = requests.get(url)
f = io.BytesIO(r.content)
parser = lxml.etree.XMLParser(recover=False)                                                                                                                                                             
tree = lxml.etree.parse(f,parser) # Raises lxml.etree.XMLSyntaxError

我可以将恢复更改为

True
,但这样一些条目就会丢失。

python xml unicode decode feed
1个回答
0
投票

在这种情况下,文件由于不可打印的

x08
字符 (
^H
)

而损坏

修复它:

f = io.BytesIO(r.content.replace(b"\x08", b""))
© www.soinside.com 2019 - 2024. All rights reserved.