使用pandas将上传的excel文件保存到数据库

pandas确实是一个神器。

基于django的上传

1 file = request.FILES.get(k)
2 # 建立连接,username替换为用户名,passwd替换为密码,test替换为数据库名
3 conn = create_engine('mysql+mysqldb://username:password@localhost:3306/test?charset=utf8', encoding='utf-8')
4 df = pd.read_excel(file)
5 df.to_sql(table_name, con=conn, if_exists='append')

在开始的时候出现一个问题,在保存到数据库时报错:

UnicodeEncodeError: 'charmap' codec can't encode character '\u7ad9' in position 1: character maps to <undefined>

最后发现问题出在 使用sqlalchemy创建连接时没有指定charset,就在 

'mysql+mysqldb://username:password@localhost:3306/test?charset=utf8'

而在sqlalchemy的示例中也没有说明:

engine = create_engine("mysql://scott:tiger@hostname/dbname", encoding='latin1', echo=True)
posted @   守望人间  阅读(1219)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示