Mysql ';拉丁语-1';编解码器可以';t编码字符u'\u2014和x27;位置23:序号不在范围内(256)
我正在将数据从excel工作簿加载到pandas数据框中,并在出现上述错误时尝试将其推送到数据库中 起初我认为数据库的排序有问题,我改为utf8_-bin 接下来,我检查了数据库引擎create语句,并为编码添加了一个参数Mysql ';拉丁语-1';编解码器可以';t编码字符u'\u2014和x27;位置23:序号不在范围内(256),mysql,excel,utf-8,pandas,latin1,Mysql,Excel,Utf 8,Pandas,Latin1,我正在将数据从excel工作簿加载到pandas数据框中,并在出现上述错误时尝试将其推送到数据库中 起初我认为数据库的排序有问题,我改为utf8_-bin 接下来,我检查了数据库引擎create语句,并为编码添加了一个参数 engine = create_engine('mysql+pymysql://root@localhost/test', encoding="utf-8") 但这两种方法都不起作用,我仍然从线路中得到错误: df.to_sql("strand", engine, if_e
engine = create_engine('mysql+pymysql://root@localhost/test', encoding="utf-8")
但这两种方法都不起作用,我仍然从线路中得到错误:
df.to_sql("strand", engine, if_exists="append", index=False)
我检查了to_sql方法是否有编码参数,但情况似乎并非如此 显然,我需要将?charset-utf8添加到查询字符串以及编码变量中,这导致我最终使用引擎create语句
engine = create_engine('mysql+pymysql://root@localhost/test?charset=utf8', encoding="utf-8")
非常感谢您发布自己的答案。我花了很多时间来弄清楚这一点。现在它工作了!