1

随着迁移到 Python 3 xml.etree.ElementTree 的 write() 无法按预期工作。

我需要使以下代码与 Python3 一起工作:

tree = ET.ElementTree(root)
fileobj = StringIO()

tree.write(fileobj, encoding="utf-8")

py3 的问题在于它将 fileobj 视为字节,因此无法将其写入 StringIO。然后在检查ElementTree 文档之后,我似乎必须使用它encoding='unicode',这在 py3 中工作得很好,但在 py2 中失败了。

现在,有一种方法可以使其同时与 py2 和 py3 一起使用,还是我必须使用 io.BytesIO 作为 py3 的解决方法,还是应该根据 python 版本使用不同的编码?

这里最好的解决方案是什么?

4

1 回答 1

0

最后我决定对 py2 和 py3 都使用 io.BytesIO

于 2013-11-13T09:09:09.157 回答