Heim > Datenbank > MySQL-Tutorial > Warum fügt mein Python-Code keine CSV-Daten in meine MySQL-Datenbank ein?

Warum fügt mein Python-Code keine CSV-Daten in meine MySQL-Datenbank ein?

Patricia Arquette
Freigeben: 2024-11-29 05:27:12
Original
812 Leute haben es durchsucht

Why Isn't My Python Code Inserting CSV Data into My MySQL Database?

CSV-Daten in MySQL in Python laden

Dieses Codefragment versucht, CSV-Daten in eine MySQL-Datenbanktabelle zu laden. Der Benutzer stößt jedoch auf ein Problem, bei dem nichts in die Tabelle eingefügt wird.

Der Code verwendet die Module csv und MySQLdb, um eine CSV-Datei zu lesen und ihre Daten in eine MySQL-Tabelle namens testcsv einzufügen. Es wird erwartet, dass die CSV-Datei drei Spalten enthält: Namen, Klassen und Markierung.

Beim Ausführen des Codes meldet der Benutzer keine Fehlermeldungen, aber die Tabelle bleibt leer. Um dieses Problem zu beheben, fehlt dem Code ein entscheidender Schritt: das Festschreiben der Änderungen an der Datenbank.

In MySQL sind an einer Datenbank vorgenommene Änderungen, wie z. B. das Einfügen neuer Datensätze, erst dann dauerhaft, wenn sie festgeschrieben werden. Standardmäßig arbeitet MySQL im Autocommit-Modus, was bedeutet, dass jede Anweisung automatisch festgeschrieben wird. In bestimmten Situationen, beispielsweise bei der Abwicklung von Transaktionen, ist es jedoch erforderlich, Änderungen explizit festzuschreiben.

Im bereitgestellten Code fehlt nach dem Einfügen jeder Datenzeile die folgende Zeile:

mydb.commit()
Nach dem Login kopieren

Durch das Hinzufügen dieser Zeile wird sichergestellt, dass die von jeder INSERT-Anweisung vorgenommenen Änderungen in die Datenbank übernommen werden. Folglich werden die Daten erfolgreich in die testcsv-Tabelle eingefügt. Der aktualisierte Code sollte wie folgt aussehen:

import csv
import MySQLdb

mydb = MySQLdb.connect(host='localhost',
    user='root',
    passwd='',
    db='mydb')
cursor = mydb.cursor()

csv_data = csv.reader(file('students.csv'))
for row in csv_data:

    cursor.execute('INSERT INTO testcsv(names, \
          classes, mark )' \
          'VALUES("%s", "%s", "%s")', 
          row)
    mydb.commit()
#close the connection to the database.
cursor.close()
print "Done"
Nach dem Login kopieren

Durch das Festschreiben der Änderungen nach jedem Einfügevorgang kann der Benutzer sicherstellen, dass die Daten dauerhaft in der MySQL-Tabelle gespeichert werden.

Das obige ist der detaillierte Inhalt vonWarum fügt mein Python-Code keine CSV-Daten in meine MySQL-Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage