最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1. 需求分析

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

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

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

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

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

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

import pymysql

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

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

4. 打開Excel文件

在Python中,可以使用openpyxl庫來讀寫Excel文件。請(qǐng)先安裝好openpyxl庫。

from openpyxl import load_workbook

# 打開Excel文件
wb = load_workbook(filename=r'E:\重新開始\Python操作MySQL數(shù)據(jù)庫\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ù)庫

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

# 遍歷每一行數(shù)據(jù),并將其插入到數(shù)據(jù)庫中
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ù)庫連接
mydb.commit()
cursor.close()
mydb.close()

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

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

7. 完整代碼

最終的Python代碼如下:

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

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

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

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

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

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

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

相關(guān)文章

  • 詳解Python利用APScheduler框架實(shí)現(xiàn)定時(shí)任務(wù)

    詳解Python利用APScheduler框架實(shí)現(xiàn)定時(shí)任務(wù)

    在做一些python工具的時(shí)候,常常會(huì)碰到定時(shí)器問題,總覺著使用threading.timer或者schedule模塊非常不優(yōu)雅。所以本文將利用APScheduler框架實(shí)現(xiàn)定時(shí)任務(wù),需要的可以參考一下
    2022-03-03
  • 使用Python在Word中查找并高亮指定文本

    使用Python在Word中查找并高亮指定文本

    當(dāng)你需要在長(zhǎng)文檔或報(bào)告中快速找到特定的關(guān)鍵詞或短語,Word中提供的查找并高亮這一功能可以幫助你迅速定位這些內(nèi)容,本文將介紹如何使用Python在Word中查找并突出顯示指定的文本,需要的朋友可以參考下
    2024-03-03
  • 利用python修改json文件的value方法

    利用python修改json文件的value方法

    今天小編就為大家分享一篇利用python修改json文件的value方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python根據(jù)出生日期返回年齡的方法

    python根據(jù)出生日期返回年齡的方法

    這篇文章主要介紹了python根據(jù)出生日期返回年齡的方法,實(shí)例分析了Python時(shí)間操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • python3.5基于TCP實(shí)現(xiàn)文件傳輸

    python3.5基于TCP實(shí)現(xiàn)文件傳輸

    這篇文章主要為大家詳細(xì)介紹了python3.5基于TCP實(shí)現(xiàn)文件傳輸?shù)拇a,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python實(shí)現(xiàn)SRT字幕文件合并的實(shí)戰(zhàn)教程

    Python實(shí)現(xiàn)SRT字幕文件合并的實(shí)戰(zhàn)教程

    這篇文章將探索如何通過Python腳本 Srt_Shift.py 來讀取、處理時(shí)間戳、合并字幕條目,并將合并后的字幕保存到新的SRT文件中,感興趣的小伙伴可以了解下
    2025-11-11
  • python獲取指定字符串中重復(fù)模式最高的字符串方法

    python獲取指定字符串中重復(fù)模式最高的字符串方法

    今天小編就為大家分享一篇python獲取指定字符串中重復(fù)模式最高的字符串方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 如何利用python生成MD5并去重

    如何利用python生成MD5并去重

    這篇文章主要給大家介紹了關(guān)于如何利用python生成MD5并去重的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 深度解析Python?yfinance的核心功能和高級(jí)用法

    深度解析Python?yfinance的核心功能和高級(jí)用法

    yfinance是一個(gè)功能強(qiáng)大且易于使用的Python庫,用于從Yahoo Finance獲取金融數(shù)據(jù),本教程將深入探討yfinance的核心功能和高級(jí)用法,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • PyCharm中配置PySide2的圖文教程

    PyCharm中配置PySide2的圖文教程

    這篇文章主要介紹了PyCharm中配置PySide2的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

门源| 九龙坡区| 蕲春县| 金堂县| 集贤县| 万安县| 兴国县| 双城市| 九寨沟县| 肇源县| 安西县| 淮南市| 邢台县| 江安县| 阿拉善盟| 东方市| 巴楚县| 宁波市| 玉环县| 商南县| 波密县| 鸡泽县| 镶黄旗| 额济纳旗| 宾川县| 田东县| 洪江市| 宁明县| 乐安县| 钟祥市| 紫阳县| 渑池县| 龙岩市| 克什克腾旗| 门头沟区| 通河县| 家居| 环江| 海晏县| 清镇市| 凉城县|