Python读取Excel文件并写入数据库

  • 我有一个Excel表格, 想整体作为一张表写入数据库,方便以后处理。
  • 想法是这样:先用pandas读取Excel表格,将表格内容转化成一个dataframe数据,然后将这个df数据整体写入数据库。
  • 刚开始的时候,没弄清楚,到底要不要先在数据库中建好表, 还有相应字段…

1. 读取Excel表格数据

  • 需要的模块
    • pandas
    • sqlalchemy
    • pymysql
  • 我的Excel文件my.xlsx路径和当前py文件平级
import pymysql
import pandas as pd
from sqlalchemy import create_engine

file = r'./my.xlsx'
df = pd.read_excel(file)
  • 首先,将文件路径存到file变量,使用pd.read_excel()函数来读取这个Excel数据,我打印了一下这个df变量的类型, 发现它的数据类型已经是dataframe, 所以这里不再用pd.DataFrame()函数转化了
  • 至此,我们已经获得了一个和Excel表格结构相同的dataframe数据,接下来就是将它写入到数据库中。

2.写入数据库

  • 数据库连接需要用到pymysql, 另一个sqlalchemy库是用来将dataframe数据与数据表进行互相转化映射的。
engine = create_engine("mysql+pymysql://root:password@localhost:3306/trust",encoding='utf-8')

df.to_sql('testexcel',con=engine,if_exists='replace',index=False)
  • 使用create_engine()函数连接数据库。

engine = create_engine(“mysql+pymysql://root:password@localhost:3306/trust”,encoding=‘utf-8’)

  • mysql 是数据库; pymysql是你用的连接数据库的库; root对应数据库用户名; root冒号后面写数据库的密码; @符合后面写数据库地址,本地是localhost3306是端口,trust是数据库名。
  • 然后调用df.to_sql()函数将dataframe数据写入:

df.to_sql(‘testexcel’,con=engine,if_exists=‘replace’,index=False)

  • 第一个参数是你希望新建的表的名字,第二个con=后面接前面一句的engine对象,后面的参数表示如果已经存在就进行替换。
  • 然后可以用可视化数据库管理工具打开查看,数据库已经存入我们的表格

你可能感兴趣的:(python)