是否可以使用xml.etree.ElementTree.write()在元素的属性中写入非字符串值? 我总是得到:
TypeError: cannot serialize 0 (type int)
当我尝试这样的事情时:
root = ET.Element('Tasks')
d = {'priority': 1, 'status': 0, 'name': 'new task', 'index': 0}
d = ET.SubElement(root, 'Settings', attrib=d)
tree = ET.ElementTree(root)
tree.write('/tmp/xmlTest')
我已经多次通过遍历相应的字典并首先将所有值转换为字符串来解决它,但是这感觉不对,在我再次讨论它之前我想知道它应该如何正确地完成不习惯坏习惯。所以任何洞察都会非常感激。
干杯, 坦率
答案 0 :(得分:9)
与XML数据相比,XML属性是文本。 http://www.w3schools.com/xml/xml_attributes.asp
您可以在xml序列化之前将属性序列化为字符串。