Maison >base de données >tutoriel mysql >Pourquoi le chargement de mes données CSV Python MySQL échoue-t-il malgré aucune erreur ?

Pourquoi le chargement de mes données CSV Python MySQL échoue-t-il malgré aucune erreur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-27 20:34:13962parcourir

Why is My Python MySQL CSV Data Load Failing Despite No Errors?

Dépannage du chargement de données CSV dans MySQL en Python

En essayant de charger des données CSV dans une table MySQL, on peut rencontrer la situation où le le code s'exécute sans erreur, mais la table cible reste vide. Pour résoudre ce problème, considérez les éléments suivants :

Problème :

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)
#close the connection to the database.
cursor.close()
print "Done"

Solution :

Pour vous assurer que le les données sont insérées avec succès dans la table, il est nécessaire d'appeler la méthode mydb.commit(). Cette méthode valide les modifications dans la base de données. Le code corrigé avec la modification nécessaire est :

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)
# Commit the data to the database.
mydb.commit()
#close the connection to the database.
cursor.close()
print "Done"

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!

Déclaration:
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