Anfängerfrage SQLite3 in Python: Daten aus Datei imortieren

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
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Hallo Pyhton Forum!

Ich benutze die API Sqlite 3 in Python um eine DB zu befüllen. Dies ist mit dem Befehl .IMPORT file table möglich. Auf der CLI ist das mit dem Befehl sqlite> .IMPORT test.txt table möglich. Aber wie mache ich das in Python? Habe SQLite3 importiert und ein Connectorobjekt erstellt.

Also folgendermaßen:

Code: Alles auswählen

import sqlite3
conn = sqlite3.connect('./exampleDB')
c.execute('''CREATE table exampleTable
(Reihendefinition...)''')
c = conn.cursor()
c.execute(""".IMPORT test.txt exampleTable USE SEPERATOR "," """)
Leider wird mir dann angezeigt, dass der Syntax nicht stimmt, auch ohne den Seperator Parameter. Kann mir jemand weiterhelfen und mir sagen, wie man in SQLite3 Dateien in Entitäten einlesen kann? Sonst bleibt mir nichts anderes übrig, als die Zeilen der Datei mit INSERT INTO in die Tabelle einzufügen. :(
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also dieses ".IMPORT"-Kommando muss etwas spezielles im CLI sein. Jedenfalls habe ich auf http://www.sqlite.org/lang.html nichts dazu gefunden und auch in der Doku zum sqlite3-Modul steht dazu nichts.

Du musst das Einfügen der Daten folglich anders realisieren müssen.

Wie liegen diese denn vor? Evtl. gibts da ja einen anderen komfortablen Weg?

Desweiteren: Falsches Forum. Wir haben ein spezielles Sub-Forum für Datenbank-Fragen ;-)
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

in etwa so wie es in http://stackoverflow.com/questions/1628 ... ile-import gezeigt wird.

Es handelt sich um eine Datei mit Einträgen, die durch einen "," getrennt sind. Daher bietet sich die Lösung an.

Hoppla, das hab ich wohl übersehen - sorry :(
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

SteeWeeDee hat geschrieben: Es handelt sich um eine Datei mit Einträgen, die durch einen "," getrennt sind. Daher bietet sich die Lösung an.
Ich frage noch einmal vorsichtshalber nach: Die Daten liegen so def. vor? Du kannst sie also nicht anders bekommen?

Ok, das ist doch ein einfaches CSV-Format. Dafür gibt es in Python ein Modul (csv) in der Standard-Lib (auch wenn ich es nicht so mag). Mit Hilfe dessen kannst Du das File recht einfach parsen. Die Ergebnisse schreibst Du dann einfach in die SQLite-Datenbank. Mittels der executemany()-Funktion sollte das evtl. sogar direkt mit dem Reader-Objekt klappen.
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Ja die Daten liegen als csv Datei vor. Genau gesagt: Datum, Integerzahl. Dann probier ich das mal aus :)

Damit wär das Topic dann doch im richtigen Forum gelandet :)
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Mit ein bisschen Stringmanipulation hats geklappt- Danke
Antworten