6

冒着因为问这样一个简单的问题而被大喊大叫的风险,但我一直在互联网上寻找答案,这种特殊情况似乎被广泛避免,而且文档模棱两可:

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

我已经通过迭代各个字典并首先将所有值转换为字符串来解决它几次,但这感觉不对,在我再次搞砸之前我想知道它应该如何正确完成,以免得到习惯了一个坏习惯。因此,任何见解将不胜感激。

干杯,坦率

4

1 回答 1

12

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

在 xml 序列化之前将属性序列化为字符串由您决定。

于 2013-10-23T06:44:50.083 回答