UTF-8编码熊猫数据帧到MySQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UTF-8编码熊猫数据帧到MySQL相关的知识,希望对你有一定的参考价值。
我使用的熊猫,mysql和SQLAlchemy的。
我目前使用pandas.to_sql()提交我的熊猫数据帧 - 包含非ASCII文本 - 我的MySQL数据库。请注意,我用其他DataFrames,我的过程中完美的作品
然而,随着非ASCII文本,下面的调用将引发错误:
df.to_sql(
name='tableOne',
con=engine,
index=False,
if_exists='replace')
产生的误差(最后行):
UnicodeEncodeError: 'ascii' codec can't encode character 'xe5' in position 143: ordinal not in range(128)
阅读类似的帖子后,我发现答案是在发动机指定“utf-8”,如下图所示:
engine = create_engine(f'mysql+mysqldb://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset=utf8', encoding="utf8")
我已经试过所有我能想到的一切,我可以在网上找到。我改变了我的引擎,包括“UTF8”,“utf-8”,等我已经试过手动编码我DF的每一个文本列UTF-8的每comination。这个作品的无
我工作过以下其他类似SO职位,这似乎有类似的问题,因此,类似的解决方案,但一切都没有为我工作:
Another UnicodeEncodeError when using pandas method to_sql with MySQL
How to handle encoding in Python 2.7 and SQLAlchemy 然而,随着@lenz指出, 我认为你缺少 见python熊猫进一步指出那一页。 以上是关于UTF-8编码熊猫数据帧到MySQL的主要内容,如果未能解决你的问题,请参考以下文章e5
不是ASCII,也不是UTF-8。随着CHARACTER SET latin1
是å
;那有意义吗?所以,我建议你有2个错误:一个地方是要求ASCII,一个是提供latin1的,和一个期待UTF8。E5
也成为CJK字符的第一个字节。该错误消息,因为它正在寻找ASCII码,只显示第一个问题的字节。眼看着接下来的两个字节就证实了这一点。use_unicode=True
。