使用Python创建包含一些数据的XML文件。我试图将字典中的值设置为列表中的数据。我将要制作多行,这就是我以这种方式引用每个值的原因。多谢你们。这是我的代码:
from xml.etree import ElementTree as ET
root = ET.Element("painter")
root.set('version', '1.0')
linenum = 0
pointnum = 0
smpl_data = [[[20,40],(0,0,1,1)],[[10,50],(0,0,1,1)],[[78,89],(0,0,1,1)]]
while linenum <= len(smpl_data): #smpl_data change to self.lines
elem_line = ET.SubElement(root,"line" + str(linenum), attrib={"r": "1", "g": "2", "b": "3", "a": "4"})
print elem_line
print elem_line.attrib.get("r")
print elem_line.attrib.set("r", "smpl_data[linenum][2]")
# I get an attribute error: 'dict' object has no attribute 'set'
虽然在文件中清楚地显示了......
http://docs.python.org/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.set
感谢您的帮助。
答案 0 :(得分:1)
您正在get()
的{{1}}成员上呼叫set()
和attrib
。 Element
是一个普通的旧Python字典,没有attrib
函数。您链接的文档适用于实际set()
对象本身的set()
函数。
要在Element
成员中设置值,您可以使用:
attrib
如果您想改用elem_line.attrib['r'] = smpl_data[linenum][2]
:
Element