今天分享一下关于利用python脚本将excel表格中的数据导入mysql数据库
环境准备:
1、一个mysql数据库
2、python
思路:
1、首先思考总体目的就是将表格中的数据导入mysql。怎么导入?方法有很多,这里我利用Python编写导入脚本,这里面需要用到Python中操控excel以及mysql相关的模块,至于具体什么模块,由于python强大的模块库,会有好几个模块能达到这种目的。我这里使用python中的pandas模块、以及pymysql模块、sqlchemy模块
2、有了这些模块具体什么流程呢,就是读取excel中的数据,然后连接数据库,写入数据库
开始:
首先,在import pandas以及pymsql的时候,确保已经安装了这个模块,没有的话就pip install一下
什么?Pip都没装,如果你是python3.*版本的话,是自带的,估计没有设置好环境变量,windows直接在系统属性里设置环境变量(高级系统设置)
为啥这么设置,因为pip这个应用就在这个目录下
安装完就开始编写脚本,我这边编辑器用的vscode
一个是连接数据库后,读取表格
然后再写入
这个if_exists参数,有三个模式,默认是fail,目标存在就失败,append就是追加数据,replace就是代替,原来的表删除重新插入
这样的话,基本就可以把excel中的数据插入mysql数据库,简单吧。
再说说pandas.read_sql,具体详细参数可以看一下pandas的官方文档。
DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)
这是to_sql的语法:
engine = create_engine('mysql+pymysql://user:password@localhost/stonetest?charset=utf8')df = pd.read_sql('cillian', engine)df.to_sql('cillian2', engine)
pymysql是用来连接mysql服务器的一个模块
import pymysql
db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTDB')
连接数据库
关闭数据库连接
db.close()
详细的增删改查就要自己去多试试了,
还有如果读取csv文件,自带列标题,但是自己又想换成别的标题怎么办
就像下面一样,多加一个df.colums,可以自定义列标题了
df_example = pd.read_csv('Pandas_example_read.csv')
df_example.columns = ['A','B','C']
遇到的问题
Excel file format cannot be determined, you must specify an engine manually.
有时候会出现这样的错误,提示无法确定格式,必须指明,我当时写的是read_excel
变换成read_csv就好了
总结:
总之python有那么多模块,很多虽然是英文,但好歹是有翻译的,都可以多研究下,办法总比困难多!加油!