Seite 1 von 1

XML-Modul funktionell wie cpickle

Verfasst: Montag 28. Februar 2011, 07:27
von Schaf220
Hallo liebe Community,
ich muss ein Dictionary bzw die Werte in eine Datei speichern. Als Value habe ich einen Datencontainer mit einigen Werten, wie zum Beipspiel, Name, Pfad, Status...etc und als Key eine ID. Mit cpickle hab ich das wunderbar gelöst. Jetzt muss ich das Ganze leider auch mit XML lösen. Gibt es ein Modul, mit dem man eine XML Datei mit Variablen/Werten erstellen und auch wieder auslesen kann?

Code: Alles auswählen

volumeDic = {1000 : Instance of CryptedVolume, 1001:Instance of CryptedVolume 1002:Instance of CryptedVolume}
CryptedVolume ist die Klasse, die Variablen mit den Werten für Name etc. speichert.


Mit freundichen Grüßen
Schaf220

Re: XML-Modul funktionell wie cpickle

Verfasst: Montag 28. Februar 2011, 08:02
von Zap
Den Komfort einfach zu dumpen und wieder zurück zu laden wie mit Pickle wirst du bei XML nicht haben, da du dir ja selber Gedanken darüber machen musst wie du die Daten in das XML-Format transferierst und auch wieder einliest.
Schwer ist das aber trotzdem nicht. Schaue dir das elementtree Modul an, das ist in der Standardbibliothek von Python enthalten. (Das Hätte dir Google oder auch die Suche hier im Forum aber auch verraten)

Re: XML-Modul funktionell wie cpickle

Verfasst: Montag 28. Februar 2011, 09:48
von BlackJack
Ich hatte da mal vor 5 Jahren was simples zusammen gehackt, was allerdings nur die Grunddatentypen kann und keine Referenzen auf bereits serialisierte Objekte erkennt und folglich auch nicht mit zyklischen Datenstrukturen klar kommt:

https://bitbucket.org/blackjack/xmlobjects.py

Damals war `ElementTree` noch gar nicht in der Standardbibliothek. :-)

Man kann Funktionen zum (de)serialisieren von eigenen Typen registrieren. Vielleicht ist das ja ein Ausgangspunkt für Dich.

Re: XML-Modul funktionell wie cpickle

Verfasst: Montag 28. Februar 2011, 11:23
von Schaf220
Ja vielen Dank ich werde es mir mal angucken. Ich habe Ausserdem noch das Modul XMarshaL gefunden, was auch sehr gut ist.