achso, muss mans doch nur so machen in dem mans gleich ins dict schreibt.
Gut ich fand diese Struktur:
Code: Alles auswählen
spec = [['NUMMER', {'from': 97, 'length': 4}],
['Name', {'from': 10, 'length': 8}]]
versuch gerade Umzusetzten doch es gibt noch ein kleines Prob:
Der Quelltext ist ja noch immer derselbe ausser das in der Funktion end_element
die werte Ins Dict bzw. Liste eingetragen werden.
Ich habs mir so gedacht:(ich weiß self.query könnte weg)
Code: Alles auswählen
def end_element( self, name):
path = "/" . join( self.path )
if path == 'Media/Table/FixedLength/FixedColumn/Name':
self.add_seperator()
self.query += "['" + self.cur_data + "',"
list.append([[self.cur_data.encode('latin-1'), {'from': 0, 'length': 0}])
if path == 'Media/Table/FixedLength/FixedColumn/FixedRange/Length':
self.query += "'length': " + self.cur_data + "}]"
if path == 'Media/Table/FixedLength/FixedColumn/FixedRange/From':
self.query += " {'from': " + self.cur_data + ","
if path == 'Media/Table':
self.query += "]"
del self.path[-1]
so damit würde ich immer diese Grundstruktur der Liste hinzufügen. Das Problem ist das jetzt
der from und lenth wert null sind. Mein plan war es self.cur_data immer auf ner Variablen
zu speichern und dann alles hier:if path == 'Media/Table/FixedLength/FixedColumn/FixedRange/From':
zusammensetzen aber allerdings kommt dann immer die Fehlermeldung:
local variable ''referenced before assgment.
Gut das geht dann schon mal nicht. Allerdings da das Dictionary ein Element der Liste ist fällt es mir schwer
auf den key from zuzugreifen und so den Wert dann in den jeweiligen if Anweisungen zu setzten.
Kann jemand so nett sein und mir noch nen guten Tipp geben?
MFG
Basti