'latin-1'编解码器无法在位置23处对字符u'\u2014'进行编码:序数不在范围内(256)。

3
我正在从Excel工作簿中加载数据到pandas dataframe,并尝试将其推送到数据库时遇到上述错误。
起初我认为数据库的排序规则有问题,所以我将其更改为utf8_bin。
接下来,我检查了我的端上的数据库引擎创建语句,我还为编码添加了一个参数。
engine = create_engine('mysql+pymysql://root@localhost/test', encoding="utf-8")

但是这两个方法都不起作用,我仍然会在以下行中收到错误提示:
df.to_sql("strand", engine, if_exists="append", index=False)

我检查了to_sql方法是否有编码参数,但似乎并没有这种情况。
1个回答

9

显然我需要在查询字符串中添加?charset-utf8以及编码变量,这导致我最终创建了引擎语句。

engine = create_engine('mysql+pymysql://root@localhost/test?charset=utf8', encoding="utf-8")

1
非常感谢您发布自己的答案。我花了很多时间找到这个答案。现在它可以正常工作了! - Nemis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接