python读取Excel到mysql


python读取Excel到mysql_第1张图片


常见问题:


1.数据库密码有特殊字符

使用urllib.parse.quote_plus 编译密码

mysql_engine = create_engine((f"mysql+pymysql://root:%[email protected]:3306/mydb")%urllib.parse.quote_plus("pass@=aaaa"))

2.设置字段类型

设置特定类型,和指定日期类型

data1 = pd.read_excel("C:/work/20230818***/数据导入.xlsx",dtype={0:"int", 2:"str", 3:"str"},parse_dates=[4,5])



eg:



from sqlalchemy import create_engine
import sqlalchemy
import pandas as pd
import urllib.parse
import datetime
from io import StringIO

# use this func, you need to change the cancel , which below # change the test or proc env
# be sure you have encoded the tag, and truncate the old db data

if __name__ == '__main__':

    data1 = pd.read_excel("C:/work/20230818***/数据导入.xlsx",dtype={0:"int", 2:"str", 3:"str"},parse_dates=[4,5])

    # set Create_Time
    # get current time
    now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    data1["Create_Time"] = now_time

    # set special column
    data1["Oper_Sign"] = 'admin'

    # change the test or proc env
    # mysql_engine = create_engine(f"mysql+pymysql://账号名:密码@IP地址:3306/数据库名")
    mysql_engine = create_engine((f"mysql+pymysql://root:%[email protected]:3306/mydb")%urllib.parse.quote_plus("pass@=aaaa"))

    data1.to_sql(name='表名', con=mysql_engine, if_exists="append", index=False)
    print('done')

你可能感兴趣的:(python,MySQL,python,excel,mysql)