亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python利用pymysql和openpyxl實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫(kù)并插入數(shù)據(jù)

 更新時(shí)間:2023年10月30日 07:40:12   作者:qwerrt9  
這篇文章主要為大家詳細(xì)介紹了如何使用Python連接MySQL數(shù)據(jù)庫(kù),并從Excel文件中讀取數(shù)據(jù),將其插入到MySQL數(shù)據(jù)庫(kù)中,有需要的小伙伴可以參考一下

1. 需求分析

本文將介紹如何使用Python連接MySQL數(shù)據(jù)庫(kù),并從Excel文件中讀取數(shù)據(jù),將其插入到MySQL數(shù)據(jù)庫(kù)中。

2. 環(huán)境準(zhǔn)備

在開(kāi)始本文之前,請(qǐng)確保您已經(jīng)安裝好了以下環(huán)境:

  • Python 3.x
  • PyMySQL庫(kù)
  • openpyxl庫(kù)
  • MySQL數(shù)據(jù)庫(kù)

3. 連接MySQL數(shù)據(jù)庫(kù)

我們可以使用pymysql庫(kù)來(lái)連接MySQL數(shù)據(jù)庫(kù)。請(qǐng)先創(chuàng)建一個(gè)名為test的MySQL數(shù)據(jù)庫(kù),并在其中創(chuàng)建一個(gè)名為yonghu的表。

import pymysql

# 連接到MySQL數(shù)據(jù)庫(kù)
mydb = pymysql.connect(
    host="localhost",
    user="root",
    passwd="123456",
    db="test"
)

在上述代碼中,我們調(diào)用了pymysql庫(kù)中的connect()函數(shù)來(lái)連接MySQL數(shù)據(jù)庫(kù)。其中,host參數(shù)是MySQL服務(wù)器的主機(jī)名或IP地址,user參數(shù)是登錄MySQL服務(wù)器的用戶名,passwd參數(shù)是登錄MySQL服務(wù)器的密碼,db參數(shù)是要連接的數(shù)據(jù)庫(kù)名。

4. 打開(kāi)Excel文件

在Python中,可以使用openpyxl庫(kù)來(lái)讀寫(xiě)Excel文件。請(qǐng)先安裝好openpyxl庫(kù)。

from openpyxl import load_workbook

# 打開(kāi)Excel文件
wb = load_workbook(filename=r'E:\重新開(kāi)始\Python操作MySQL數(shù)據(jù)庫(kù)\sheet1.xlsx')
sheet = wb.active

在上述代碼中,我們使用load_workbook()函數(shù)加載Excel文件,并使用active屬性獲取活動(dòng)工作表。

5. 獲取表頭

在插入數(shù)據(jù)之前,我們需要先獲取Excel表格的表頭信息。

# 獲取表頭
header = [cell.value for cell in sheet[1]]

在上述代碼中,我們遍歷第一行的單元格,獲取每個(gè)單元格的值,作為表頭。

6. 遍歷Excel數(shù)據(jù)并插入數(shù)據(jù)庫(kù)

接下來(lái),我們遍歷Excel文件中的每一行數(shù)據(jù),并將其插入到MySQL數(shù)據(jù)庫(kù)中。

# 遍歷每一行數(shù)據(jù),并將其插入到數(shù)據(jù)庫(kù)中
cursor = mydb.cursor()
count = 0
for row in sheet.iter_rows(min_row=2, values_only=True):
    sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})"
    cursor.execute(sql, row)
    count += 1
    print(f"正在插入{count}條數(shù)據(jù)")

# 提交更改并關(guān)閉數(shù)據(jù)庫(kù)連接
mydb.commit()
cursor.close()
mydb.close()

在上述代碼中,我們使用iter_rows()函數(shù)從第二行開(kāi)始遍歷每一行數(shù)據(jù)。在遍歷過(guò)程中,我們構(gòu)建了一個(gè)插入數(shù)據(jù)的SQL語(yǔ)句,使用占位符%s,然后使用游標(biāo)對(duì)象執(zhí)行SQL語(yǔ)句,將行數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中。

最后,我們提交了對(duì)數(shù)據(jù)庫(kù)的更改,并關(guān)閉了游標(biāo)對(duì)象和與MySQL數(shù)據(jù)庫(kù)的連接。

7. 完整代碼

最終的Python代碼如下:

from openpyxl import load_workbook  # 導(dǎo)入load_workbook函數(shù),用于加載Excel文件
import pymysql  # 導(dǎo)入pymysql庫(kù),用于連接和操作MySQL數(shù)據(jù)庫(kù)

# 連接到MySQL數(shù)據(jù)庫(kù)
mydb = pymysql.connect(
    host="localhost",
    user="root",
    passwd="123456",
    db="test"
)

# 打開(kāi)Excel文件
wb = load_workbook(filename=r'E:\重新開(kāi)始\Python操作MySQL數(shù)據(jù)庫(kù)\sheet1.xlsx')  # 加載Excel文件
sheet = wb.active  # 獲取活動(dòng)工作表

# 獲取表頭
header = [cell.value for cell in sheet[1]]  # 獲取第一行的單元格值,作為表頭

# 遍歷每一行數(shù)據(jù),并將其插入到數(shù)據(jù)庫(kù)中
cursor = mydb.cursor()  # 創(chuàng)建游標(biāo)對(duì)象,用于執(zhí)行SQL語(yǔ)句
count = 0  # 計(jì)數(shù)器,用于記錄插入的數(shù)據(jù)條數(shù)
for row in sheet.iter_rows(min_row=2, values_only=True):  # 從第二行開(kāi)始遍歷每一行數(shù)據(jù)
    sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})"
    # 構(gòu)建插入數(shù)據(jù)的SQL語(yǔ)句,使用占位符%s
    cursor.execute(sql, row)  # 執(zhí)行SQL語(yǔ)句,將行數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中
    count += 1  # 每插入一條數(shù)據(jù),計(jì)數(shù)器加1
    print(f"正在插入{count}條數(shù)據(jù)")  # 輸出插入的數(shù)據(jù)條數(shù)

# 提交更改并關(guān)閉數(shù)據(jù)庫(kù)連接
mydb.commit()  # 提交對(duì)數(shù)據(jù)庫(kù)的更改
cursor.close()  # 關(guān)閉游標(biāo)對(duì)象
mydb.close()  # 關(guān)閉與數(shù)據(jù)庫(kù)的連接

到此這篇關(guān)于python利用pymysql和openpyxl實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫(kù)并插入數(shù)據(jù)的文章就介紹到這了,更多相關(guān)python操作MySQL數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python卸載后再次安裝遇到的問(wèn)題解決

    python卸載后再次安裝遇到的問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于python卸載后再次安裝遇到問(wèn)題解決的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python趣味挑戰(zhàn)之pygame實(shí)現(xiàn)無(wú)敵好看的百葉窗動(dòng)態(tài)效果

    Python趣味挑戰(zhàn)之pygame實(shí)現(xiàn)無(wú)敵好看的百葉窗動(dòng)態(tài)效果

    最近寫(xiě)了很多期關(guān)于pygame的案例和知識(shí)點(diǎn),自己也收獲了很多知識(shí),也在這個(gè)過(guò)程中成長(zhǎng)了不少, 這次還是圍繞surface對(duì)象進(jìn)行詳細(xì)介紹,并形成完整的案例過(guò)程,文中有非常詳細(xì)實(shí)現(xiàn)百葉窗動(dòng)態(tài)效果的代碼示例,需要的朋友可以參考下
    2021-05-05
  • python讀取txt數(shù)據(jù)的操作步驟

    python讀取txt數(shù)據(jù)的操作步驟

    這篇文章主要介紹了python讀取txt數(shù)據(jù)的操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • python從PDF中提取數(shù)據(jù)的示例

    python從PDF中提取數(shù)據(jù)的示例

    這篇文章主要介紹了python從PDF中提取數(shù)據(jù)的示例,幫助大家提高辦公效率,感興趣的朋友可以了解下
    2020-10-10
  • 在Python IDLE 下調(diào)用anaconda中的庫(kù)教程

    在Python IDLE 下調(diào)用anaconda中的庫(kù)教程

    這篇文章主要介紹了在Python IDLE 下調(diào)用anaconda中的庫(kù)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 如何利用Python matplotlib繪制雷達(dá)圖

    如何利用Python matplotlib繪制雷達(dá)圖

    這篇文章主要給大家介紹了關(guān)于如何利用Python matplotlib繪制雷達(dá)圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python腳本實(shí)現(xiàn)網(wǎng)卡流量監(jiān)控

    Python腳本實(shí)現(xiàn)網(wǎng)卡流量監(jiān)控

    這篇文章主要介紹了Python腳本實(shí)現(xiàn)網(wǎng)卡流量監(jiān)控,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • Python包管理工具之PDM的使用教程

    Python包管理工具之PDM的使用教程

    今天主要是給大家推薦一個(gè)叫PDM的工具,全稱:Python?Development?Master,它也是非常好用。本文將為大家詳細(xì)講講它的使用,感興趣的可以了解一下
    2022-08-08
  • python實(shí)現(xiàn)按首字母分類查找功能

    python實(shí)現(xiàn)按首字母分類查找功能

    這篇文章主要介紹了python實(shí)現(xiàn)按首字母分類查找功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 深度辨析Python的eval()與exec()的方法

    深度辨析Python的eval()與exec()的方法

    這篇文章主要介紹了深度辨析Python的eval()與exec()的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03

最新評(píng)論