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)