嗨,所以我一直在努力解决这个问题,并且无法弄清楚为什么我会遇到错误。试图将一些基本的XML导出到一个新文件中,不断给我一个TypeError。以下是代码的一小部分示例
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
import xml.etree.ElementTree as ET
root = Element('QuoteWerksXML')
tree = ElementTree(root)
ver = SubElement(root, "AppVersionMajor")
ver.text = '5.1'
tree.write(open('person.xml', 'w'))
答案 0 :(得分:15)
ElementTree.write
方法默认使用us-ascii编码,因此需要打开一个用于编写二进制文件的文件:
输出是字符串(str)或二进制(字节)。这由encoding参数控制。如果 encoding 为
"unicode"
,则输出为字符串;否则,它是二进制的。请注意,如果它是一个打开的文件对象,这可能与文件的类型冲突;确保你不要尝试将字符串写入二进制流,反之亦然。
因此要么打开文件以便以二进制模式写入:
tree.write(open('person.xml', 'wb'))
或打开文件以便以文字模式书写,并将"unicode"
作为编码:
tree.write(open('person.xml', 'w'), encoding='unicode')