python导入mysql数据库sqlalchemy.exc.InternalError: (pymysql.err.InternalError) 1366的解决办法

解决前

from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://use:pwd@localhost:3306/test?charset=utf8")
df.to_sql("testtable", engine, schema="test", if_exists='replace', index=True,
            chunksize=None, dtype=None)

解决后

engine = create_engine("mysql+pymysql://use:pwd@localhost:3306/test?charset=utf8mb4")

只需要把charset类型改为utf8mb4就可以了
如果是追加方式写入的则需要在数据库命令行中输入以下命令,改变表的字符集
ALTER TABLE 要追加写入的表名 CONVERT TO CHARACTER SET utf8mb4;

你可能感兴趣的:(python导入mysql数据库sqlalchemy.exc.InternalError: (pymysql.err.InternalError) 1366的解决办法)