Maison > base de données > tutoriel mysql > Pourquoi mon code Python n'insère-t-il pas de données CSV dans ma base de données MySQL ?

Pourquoi mon code Python n'insère-t-il pas de données CSV dans ma base de données MySQL ?

Patricia Arquette
Libérer: 2024-11-29 05:27:12
original
837 Les gens l'ont consulté

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

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()
Copier après la connexion

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"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal