首頁 > 資料庫 > mysql教程 > 為什麼我的 Python 程式碼沒有將 CSV 資料插入我的 MySQL 資料庫?

為什麼我的 Python 程式碼沒有將 CSV 資料插入我的 MySQL 資料庫?

Patricia Arquette
發布: 2024-11-29 05:27:12
原創
879 人瀏覽過

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

在 Python 中將 CSV 資料載入到 MySQL

此程式碼片段嘗試將 CSV 資料載入到 MySQL 資料庫表中。但是,使用者遇到了一個問題,即沒有任何內容插入到表中。

程式碼使用 csv 和 MySQLdb 模組讀取 CSV 檔案並將其資料插入名為 testcsv 的 MySQL 表中。 CSV 檔案預計包含三列:名稱、類別和標記。

執行程式碼後,使用者不會報告任何錯誤訊息,但表仍為空。為了解決這個問題,程式碼缺少一個關鍵步驟:將變更提交到資料庫。

在 MySQL 中,對資料庫所做的變更(例如插入新記錄)在提交之前不是永久的。預設情況下,MySQL 以自動提交模式運行,這表示每個語句都會自動提交。但是,在某些情況下,例如處理事務時,需要明確提交變更。

在提供的程式碼中,插入每行資料後缺少以下行:

mydb.commit()
登入後複製

新增此行將確保每個 INSERT 語句所做的變更都提交至資料庫。因此,資料將成功插入到 testcsv 表中。更新後的程式碼應如下所示:

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"
登入後複製

透過在每次插入操作後提交更改,使用者可以確保資料永久儲存在 MySQL 表中。

以上是為什麼我的 Python 程式碼沒有將 CSV 資料插入我的 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板