Python3:StringIO和Elementree编码

Python3:StringIO和Elementree编码,python,unicode,python-3.x,elementtree,stringio,Python,Unicode,Python 3.x,Elementtree,Stringio,迁移到Python3xml.etree.ElementTree后,写操作无法按预期工作 我需要使以下代码与Python3一起工作: tree = ET.ElementTree(root) fileobj = StringIO() tree.write(fileobj, encoding="utf-8") py3的问题是它将fileobj视为字节,因此无法将其写入StringIO。然后,在检查之后,我似乎必须使用encoding='unicode',这在py3中可以正常工作,但在py2中失败

迁移到Python3xml.etree.ElementTree后,写操作无法按预期工作

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

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

tree.write(fileobj, encoding="utf-8")
py3的问题是它将fileobj视为字节,因此无法将其写入StringIO。然后,在检查之后,我似乎必须使用encoding='unicode',这在py3中可以正常工作,但在py2中失败

现在,有没有一种方法可以使它同时与py2和py3一起工作,或者我必须使用io.BytesIO作为py3的解决方案,或者我应该使用基于python版本的不同编码


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

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