Excel CSV是一種常見的數(shù)據(jù)存儲格式,而MySQL數(shù)據(jù)庫是一種廣泛使用的關(guān)系型數(shù)據(jù)庫。在實際應用中,我們經(jīng)常需要將Excel CSV格式的數(shù)據(jù)導入到MySQL數(shù)據(jù)庫中。本文將介紹如何使用Python編程實現(xiàn)Excel CSV導入MySQL數(shù)據(jù)庫的功能。
在開始編程之前,需要先安裝MySQL和Python庫pymysql
和pandas
。安裝方法請自行搜索。
編程實現(xiàn)的主要步驟如下:
1. 連接MySQL數(shù)據(jù)庫 2. 創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表 3. 讀取Excel CSV文件 4. 將讀取的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫中
首先,需要連接到MySQL數(shù)據(jù)庫。代碼如下:
import pymysql # 連接到數(shù)據(jù)庫 db = pymysql.connect( host="localhost", user="root", password="123456", database="test", charset="utf8mb4" ) # 創(chuàng)建游標 cursor = db.cursor()
接下來,需要創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表。代碼如下:
# 創(chuàng)建數(shù)據(jù)庫 cursor.execute("CREATE DATABASE IF NOT EXISTS test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;") # 切換到數(shù)據(jù)庫 cursor.execute("USE test;") # 創(chuàng)建數(shù)據(jù)表 sql_create = """ CREATE TABLE IF NOT EXISTS `students` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) NOT NULL, `age` INT NOT NULL, `sex` CHAR(2) NOT NULL, `phone` VARCHAR(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; """ cursor.execute(sql_create)
現(xiàn)在開始讀取Excel CSV文件。使用pandas
庫可以方便地讀取CSV文件。代碼如下:
import pandas as pd # 讀取CSV文件 df = pd.read_csv("students.csv", encoding="utf-8") # 將數(shù)據(jù)轉(zhuǎn)換為二維列表 data = df.values.tolist()
最后,將讀取的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫中。代碼如下:
# 插入數(shù)據(jù) for d in data: sql_insert = "INSERT INTO `students` (`name`, `age`, `sex`, `phone`) VALUES ('%s', %d, '%s', '%s');" % tuple(d) cursor.execute(sql_insert) # 提交事務 db.commit() # 關(guān)閉游標和數(shù)據(jù)庫連接 cursor.close() db.close()
完成以上步驟后,Excel CSV數(shù)據(jù)就已經(jīng)成功導入到了MySQL數(shù)據(jù)庫中。通過這種方法,我們可以方便地將Excel CSV格式的數(shù)據(jù)導入到MySQL數(shù)據(jù)庫中,方便實現(xiàn)數(shù)據(jù)的存儲和管理。
上一篇mysql bnl