【发布时间】:2026-01-27 02:10:01
【问题描述】:
raspberry 3 上有一个 HTTP 代理服务器。 由 BeautifulSoup(BS) 分析 XML 数据。我发现当数据只包含 'ASCII' 格式的字符时,BS 速度非常快。但是,当某些字符超出 'ASCII' 时,BS 会变得非常慢(对于 150kb 的 XML 字符串,它需要超过 10 秒。) 我还尝试了 elementtree 结构和 XML.dom。他们两个都很慢。 XML.sax 要好得多,但是对于我在树莓板上的 python 2.7.13,XML.sax 只能处理'ASCII'。在使用 sax 之前,我必须使用 data.encode('ascii','ignore'),但这也需要很长时间。 我只是想知道有没有处理 utf8 格式的 XML 字符串的好方法?
【问题讨论】:
-
没有python专家,但
xml.sax.parseString(data.decode('utf-8'))也许可以工作?您改为解码为 unicode。还可以观看这个精彩的演示:youtube.com/watch?v=Mx70n1dL534 -
sax.parseString 是一个辅助函数,与 parser.parse() 不同。它不支持 utf-8 格式。这可以在 sax 文件夹中的 init.py 中看到:它从无法处理 unicode 的 cStringIO 导入 StringIO。