随着迁移到 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 版本使用不同的编码?
这里最好的解决方案是什么?