Daten Serialisieren

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.
Antworten
beetronic
User
Beiträge: 33
Registriert: Mittwoch 2. Mai 2007, 10:23

Hallo Forum,

ich möchte folgendes machen:
  1. Datensätze aus einer Website extrahieren
  2. diese in einer Datei speichern, in einem Format, das ich per Hand bearbeiten kann (eventuell würde sich hier YAML eignen?)
  3. mit den Daten eine Sqlite Datenbank initial befüllen
Das extrahieren der Daten funktioniert bereits. Das mache ich mit BeautifulSoup, dann gebe ich momentan alles mit einfachen print Statements aus und leite es in der Shell in eine Datei um.

Kann mir jemand einen Tip geben, wie ich am besten meine Daten serialisieren kann, sodass ich sie gut per Hand bearbeiten kann und dann auch wieder einlesen kann. Würde man das z.B. mit PyYAML machen? Oder was nehme ich da am besten?

http://pyyaml.org/wiki/PyYAML

VG, beetronic
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

Vermutlich reicht dir auch JSON (YAML ist eine Art Erweiterung von JSON), das wird von der Standardbibliothek unterstützt (Modul "json").
http://www.florian-diesch.de
Benutzeravatar
Foobar
User
Beiträge: 8
Registriert: Sonntag 2. September 2012, 10:02
Wohnort: Hessen

Hallo beetronic,

ich würde das von den Daten abhängig machen. Zur Auswahl stehen afaik Ini-Datei, JSON, YAML und PList. PList basiert auf XML und ist damit recht komplex, aber etwas flexibler als JSON/YAML. Vermutlich ist es trotzdem Overkill. Wenn du allerdings auf Mac OS X arbeitest und die Developer Tools hast, gibt's einen netten Editor für Plists ;)

Wenn eine Ini-Datei nicht ausreicht, bleibt also wohl nur YAML und JSON (als lesbare Formate). Welches du davon mehr magst, überlasse ich dir und deinen Vorlieben - objektiv betrachtet sollte das keinen Unterschied machen und den Parser, um aus YAML/JSON eine Sqlite Datenbank zu basteln, musst du afaik eh selbst programmieren. Hab z.B. einen Ansatz für JSON->sqlite gefunden: How to map json keys to database columns properly?

Wenn es viele Daten sind, könntest du evtl. auch über eine dokumentenbasierte Datenbank wie MongoDB o.ä. statt Sqlite nachdenken. Da hab ich aber keine Erfahrung.

Gruß, Micha
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@beetronic: je nach Daten böte sich noch csv an, das sich dann bequem mit einer Tabellenkalkulation bearbeiten läßt. Ohne zu wissen, wie die Daten aussehen und welche Art von Bearbeitung von Hand Du noch vorhast, können wir aber nur so allgemein bleiben.

@diesch: bei Deiner Definition von "eine Art Erweiterung" könnte man wahrscheinlich alles als eine Art Erweiterung ansehen.
Antworten