Daten verwalten... Verschachtelte Dicts <-> Klassen...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Daten verwalten... Verschachtelte Dicts <-> Klassen...

Beitragvon jens » Donnerstag 18. November 2004, 15:38

Ich muß nochmal nerven... Ich komm einfach nicht so recht weiter... Hab das gefühl ich dreh mich im Kreis...

Ich überlege die ganze Zeit, wie ich wohl am besten Daten abspeichern/bearbeiten/zurückschreiben kann...

Normalerweise packe ich solche Sachen immer in Dicts und darin nochmal ein Dict oder eine Liste usw. Dieser verschachtelte "Array-Mix" ist allerdings nicht so Übersichtlich... Oder ist diese Vorgehensart normal?

Sollte ich nicht irgendwie eine Klasse "Daten" erstellen??? Wobei ich das auch mal gemacht hab, mir aber aufgefallen ist, das die die Daten wiedr in verschachtelte Arrays packe...

Hier mal ein einfacher Aufbau meiner Daten, die ich verwalten will. Ich hab mehere vCards-Dateien in den verschiedene Einträge und dazugehörigen Werte sind:

Card1.vcf
BEGIN:VCARD
VERSION:2.1
N:Card1
X-IRMC-LUID:105
TEL;PREF;VOICE:0123456
END:VCARD


Test2.vcf
BEGIN:VCARD
VERSION:2.1
X-WV-ID:wv:Ben.kenn
N:Test2
X-IRMC-LUID:108
TEL;PREF;VOICE:1
TEL;CELL;VOICE:2
TEL;HOME;VOICE:3
TEL;WORK;VOICE:4
TEL;FAX:5
EMAIL:email@at.com
NOTE:Notiz!
URL:www.%.de
LABEL;CHARSET=ISO-8859-1;ENCODING=QUOTED-PRINTABLE:Stasse 5=0AEnter=0AA=E4=
=C4O=F6=D6U=FC=DC=20
END:VCARD


Ich muß auch noch einige Werte bearbeiten (z.B. encoding), wie das geht, ist ja hier geklärt: http://python.sandtner.org/viewtopic.php?t=2259

Das eigentlich Parsen der Daten ist auch kein Problem... Kann man ja Prima mittels .split("\n") und .split(":") erledigen...


Auch weiß ich nie, wie ich vorgehen soll, die Daten zu verarbeiten... Entweder immer Blockweise oder Nacheinander...

Mit Blockweise meine ich:
-Alle Dateinamen lesen -> in eine Liste packen
-Interation über Liste und Dateien Lesen -> in ein Dict packen
-Interation über das Dict und Daten parsen...

Mit Nacheinander meine ich, das ich direkt, wenn ich den Dateinamen hab, diese Datei auslese und Parse... Dann das ganze mit dem nächsten Dateinamen usw.

Die Blockweise abarbeitung erscheint mir immer etwas übersichtlicher, da man schnell "Zwischenergebnisse" ausgeben lassen kann...
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 18. November 2004, 17:00

Hi jens,

ich mach mir für sowas meist eine eigene Klasse, von dict abgeleitet, die dann das lesen und parsen und das speichern übernimmt. In Deinem Fall würde ich auch für "QUOTED-PRINTABLE" eine Klasse erstellen und die von str ableiten, die dann das encoding und decoding übernimmt.

Das Bearbeiten ergibt sich dann von alleine, da du dann nur noch eine Liste mit den VCFDicts aus den *.vcf Dateien zusammenstellst.

Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 18. November 2004, 21:02

Gibt es zu dem Thema irgendwo ein deutsche Tutorial oder ähnliches???
Wenn nicht, kannst du vielleicht bei
http://de.wikibooks.org/wiki/Python-Pro ... nd_Klassen
deine Ausführungen dahingehend erweitern??? Das wäre super!

Wer ist online?

Mitglieder in diesem Forum: Kebap