Python3 导入 excel 到 MySQL 数据库

不必细说的背景

  最近在做一个 Java 项目,需要处理一批历史数据,由于工具限制,采用了 Python 导入 excel 到数据库的方式。

 

安装依赖包

pip install pandas
pip install sqlalchemy
pip install pymysql
pip install mysql-connector
pip install mysql-connector-python

 

下载缺失文件 typing_extensions.py

  如果出现 ModuleNotFoundError: No module named 'typing_extensions',需要去 github 下载 typing_extensions.py,放在 typing.py 所在的 Lib 文件夹。

 

可选项

  如果要导入的 excel 是低版本的(excel 2003),还需要安装 xlrd。

pip install xlrd

 

Python 代码

import pymysql
import pandas as pd
from sqlalchemy import create_engine
from urllib.parse import quote_plus as urlquote ## 处理密码中的特殊字符

db_user = 'root'
db_pass = 'test@2023'
db_host = '192.168.1.10'
db_port = 3306
db_name = 'db_test'

file = r'./test_data.xlsx'
excel = pd.read_excel(file)

conn_str = f'mysql+mysqlconnector://{db_user}:{urlquote(db_pass)}@{db_host}:{db_port}/{db_name}?charset=utf8'
engine = create_engine(conn_str)
##conn = pymysql.connect(host='192.168.1.10',port=3306,user='root',passwd='test@2023',db='db_test',charset='utf8')## to_sql 需要用 engine,不能用 conn
excel.to_sql('tbl_test',con=engine,if_exists='replace',index=False) ##表 tbl_test 可以不存在,导入数据,如果存在则替换

 

posted @ 2023-03-27 19:21  原来是李  阅读(294)  评论(0编辑  收藏  举报