Chargement de données CSV dans MySQL en Python
Cet extrait de code tente de charger des données CSV dans une table de base de données MySQL. Cependant, l'utilisateur rencontre un problème où rien n'est inséré dans la table.
Le code utilise les modules csv et MySQLdb pour lire un fichier CSV et insérer ses données dans une table MySQL appelée testcsv. Le fichier CSV doit comporter trois colonnes : noms, classes et marque.
Lors de l'exécution du code, l'utilisateur ne signale aucun message d'erreur, mais le tableau reste vide. Pour résoudre ce problème, il manque au code une étape cruciale : la validation des modifications dans la base de données.
Dans MySQL, les modifications apportées à une base de données, telles que l'insertion de nouveaux enregistrements, ne sont pas permanentes tant qu'elles ne sont pas validées. Par défaut, MySQL fonctionne en mode autocommit, ce qui signifie que chaque instruction est automatiquement validée. Cependant, dans certaines situations, comme lors du traitement des transactions, il est nécessaire de valider explicitement les modifications.
Dans le code fourni, la ligne suivante manque après l'insertion de chaque ligne de données :
mydb.commit()
L'ajout de cette ligne garantira que les modifications apportées par chaque instruction INSERT sont validées dans la base de données. Par conséquent, les données seront insérées avec succès dans la table testcsv. Le code mis à jour devrait ressembler à ceci :
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"
En validant les modifications après chaque opération d'insertion, l'utilisateur peut s'assurer que les données sont stockées de manière permanente dans la table MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!