使用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)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM