Il metodo .set () non è nella libreria XML.ETree per Python?
Domanda
Lavorando sulla creazione di un file XML con alcuni dati utilizzando Python. Sto cercando di impostare valori nel dizionario sui dati nell'elenco. Farò più righe, quindi è per questo che faccio riferimento a ogni valore in questo modo. Grazie ragazzi. Ecco il mio codice:
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'
È chiaramente mostrato nella documentazione però ...
http://docs.python.org/library/xml.etree.elementtree.html#xml.etree.elementtree.element.set
Grazie per l'aiuto.
Soluzione
Stai chiamando get()
e set()
sul attrib
membro del Element
. attrib
è un normale vecchio dizionario Python che non ha un set()
funzione. La documentazione collegata è per il set()
funzione sull'effettivo Element
oggetto stesso.
Per impostare un valore in attrib
membro che useresti:
elem_line.attrib['r'] = smpl_data[linenum][2]
Se vuoi usare il Element
invece:
elem_line.get('r')
elem_line.set('r', smpl_data[linenum][2])