python import csv zu sqlite

Hallo, ich bin versucht, zu importieren einer csv-Datei in eine sqlite3-Datenbank mit python tkinter.
Ich öffne die Datei mit askopenfilename dialog und übergeben Sie die Datei auf readFile-Funktion.

def csvFile(self):
        f1 = askopenfilename()
       self.readFile(f1)

def readFile(self, filename):
    conn = sqlite3.connect('Unicommerce.db')
    cur = conn.cursor() 
    cur.execute("""CREATE TABLE IF NOT EXISTS unicom(products varchar,channel varchar,regulatory_forms varchar,shipment varchar)""")
    filename.encode('utf-8')
    print "test1"
    reader = csv.reader(filename)
    for field in reader:
        cur.execute("INSERT INTO unicom VALUES (?,?,?,?);", field)

    conn.commit()
    conn.close()

Bin ich immer diese Fehlermeldung.

cur.execute("INSERT INTO unicom VALUES (?,?,?,?);", field)
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 4, and there are 1 supplied.

Ich habe versucht alle possoible Lösung zur Verfügung, konnte aber nicht importieren-Datei-Datenbank.


Ich habe auch versucht, versucht, Lösungen in diesen links
Importieren einer CSV-Datei in eine sqlite3-Datenbank-Tabelle mithilfe von Python

Python CSV zu SQLite

EDIT: Link zur Eingabe-Datei Input-Datei

  • Dieser Fehler bedeutet, dass es nicht genug Werte in field passend zu Ihrem Ausdruck. Versuchen Sie print repr(field) vor Ihre SQL-Befehl, um zu sehen, was field tatsächlich enthält.
  • Einfacher wäre es, wenn Sie liefern könnte einige Beispiel für Ihre Eingabe Daten!
  • Es ist der Druck dieser -- ['C'] . Ich meine input-Datei. Überprüfen, Bearbeiten
  • Es ist nur ein Element in der Liste aus, was Sie erwarten, es würde thourh Fehler
  • Wie kann ich den Fehler beheben?
  • Könnten Sie bitte post ein Beispiel der csv-Datei, die Sie verwenden und den code der Funktion askopenfilename ?
  • Prüfen Sie Bearbeiten in Frage. Ich habe einen link Hinzugefügt, um die Datei unten an der Frage
  • Was bedeutet askopenfilename tut ? Es sieht aus wie Sie versuchen, Adobe reader, mit dem Dateinamen der csv-wenn es will-das file-Objekt (siehe docs.python.org/2/library/csv.html#csv.reader). Sie müssen die Datei zu öffnen, bevor er es an den Leser. Versuchen reader = csv.reader(open(filename, "r"))
  • Ich bin mit tkinter für die gui. askopenfilename eine Datei öffnen-dialog, wo ich die Datei auswählen und dann übergeben es an readFile-Methode
  • Danke ich benutzte open(Dateiname) und es funktionierte

InformationsquelleAutor Manish Gupta | 2015-07-06
Schreibe einen Kommentar