Python3:StringIO和Elementree编码

时间:2013-10-31 21:25:37

标签: python unicode python-3.x elementtree stringio

迁移到Python 3 xml.etree.ElementTree的write()不能按预期工作。

我需要让以下代码与Python3一起使用:

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

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

py3的问题在于它将fileobj视为字节,因此无法将其写入StringIO。然后在检查ElementTree docutmentation后,我必须使用encoding='unicode',这在py3中运行正常,但在py2中失败。

现在,有一种方法可以使用py2和py3,或者我必须使用io.BytesIO作为py3的解决方法,还是应该使用基于python版本的不同编码?

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

1 个答案:

答案 0 :(得分:0)

最后我决定将io.BytesIO用于py2和py3