.set()方法不在xml.etreePython库?

2024-06-28 18:59:25 发布

您现在位置:Python中文网/ 问答频道 /正文

使用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

谢谢你的帮助。在


Tags: 数据datalinerootxmlelementetetree
1条回答
网友
1楼 · 发布于 2024-06-28 18:59:25

您正在调用get()和{}对Element成员的{}。attrib是一个常规的旧Python字典,它没有set()函数。您链接的文档是针对实际Element对象本身的set()函数的。在

要在attrib成员中设置值,请使用:

elem_line.attrib['r'] = smpl_data[linenum][2]

如果要使用Element代替:

^{pr2}$

相关问题 更多 >