can xml.etree.ElementTree.write()给定Element的整数值?

时间:2013-10-23 06:24:14

标签: python xml elementtree

有可能因为问这么简单的问题而大吼大叫,但我一直在网上寻找答案,这个特殊的案例似乎被广泛避免,而且文档含糊不清:

是否可以使用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')

我已经多次通过遍历相应的字典并首先将所有值转换为字符串来解决它,但是这感觉不对,在我再次讨论它之前我想知道它应该如何正确地完成不习惯坏习惯。所以任何洞察都会非常感激。

干杯, 坦率

1 个答案:

答案 0 :(得分:9)

与XML数据相比,XML属性是文本。 http://www.w3schools.com/xml/xml_attributes.asp

您可以在xml序列化之前将属性序列化为字符串。