Rumah >pangkalan data >tutorial mysql >Mengapa Kod Python Saya Tidak Memasukkan Data CSV ke dalam Pangkalan Data MySQL Saya?

Mengapa Kod Python Saya Tidak Memasukkan Data CSV ke dalam Pangkalan Data MySQL Saya?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 05:27:12817semak imbas

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

Memuatkan Data CSV ke dalam MySQL dalam Python

Coretan kod ini cuba memuatkan data CSV ke dalam jadual pangkalan data MySQL. Walau bagaimanapun, pengguna menghadapi isu di mana tiada apa-apa yang dimasukkan ke dalam jadual.

Kod menggunakan modul csv dan MySQLdb untuk membaca fail CSV dan memasukkan datanya ke dalam jadual MySQL yang dipanggil testcsv. Fail CSV dijangka mempunyai tiga lajur: nama, kelas dan tanda.

Setelah melaksanakan kod, pengguna tidak melaporkan mesej ralat, tetapi jadual kekal kosong. Untuk menyelesaikan isu ini, kod itu tiada langkah penting: melakukan perubahan pada pangkalan data.

Dalam MySQL, perubahan yang dibuat pada pangkalan data, seperti memasukkan rekod baharu, tidak kekal sehingga ia dilakukan. Secara lalai, MySQL beroperasi dalam mod autocommit, yang bermaksud bahawa setiap pernyataan dilakukan secara automatik. Walau bagaimanapun, dalam situasi tertentu, seperti semasa mengendalikan urus niaga, adalah perlu untuk melakukan perubahan secara eksplisit.

Dalam kod yang disediakan, baris berikut tiada selepas memasukkan setiap baris data:

mydb.commit()

Menambah baris ini akan memastikan bahawa perubahan yang dibuat oleh setiap pernyataan INSERT adalah komited kepada pangkalan data. Akibatnya, data akan berjaya dimasukkan ke dalam jadual testcsv. Kod yang dikemas kini sepatutnya kelihatan seperti ini:

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"

Dengan melakukan perubahan selepas setiap operasi sisipan, pengguna boleh memastikan bahawa data disimpan secara kekal dalam jadual MySQL.

Atas ialah kandungan terperinci Mengapa Kod Python Saya Tidak Memasukkan Data CSV ke dalam Pangkalan Data MySQL Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn