Frage

Arbeiten beim Erstellen einer XML -Datei mit einigen Daten mithilfe von Python. Ich versuche, Werte im Wörterbuch auf Daten in der Liste festzulegen. Ich werde mehrere Zeilen erstellen, deshalb verweist ich auf jeden Wert auf diese Weise. Danke Leute. Hier ist mein Code:

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'

Es wird in der Dokumentation jedoch deutlich gezeigt ...

http://docs.python.org/library/xml.etree.elementtree.html#xml.etree.elementtree.element.set

Danke für die Hilfe.

War es hilfreich?

Lösung

Du rufst an get() und set() auf der attrib Mitglied von Element. attrib ist ein regelmäßiges altes Python -Wörterbuch, das keine hat set() Funktion. Die von Ihnen verlinkte Dokumentation ist für die set() Funktion auf der tatsächlichen Funktion Element Objekt selbst.

Einen Wert in festlegen attrib Mitglied, das Sie verwenden würden:

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

Wenn Sie das verwenden möchten Element stattdessen:

elem_line.get('r')
elem_line.set('r', smpl_data[linenum][2])
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top