2013-10-31 67 views
1

遷移到Python 3 xml.etree.ElementTree的write()無法按預期工作。Python3:StringIO和Elementree編碼

我需要做下面的代碼工作與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版本的不同編碼?

這裏最好的解決方案是什麼?

回答

0

最後我決定爲py2和py3使用io.BytesIO