gpt4 book ai didi

Python MySQL编码错误: 'latin-1' codec can't encode character: ordinal not in range(256)

转载 作者:行者123 更新时间:2023-11-29 18:52:17 28 4
gpt4 key购买 nike

我在 Python 中被 UnicodeEncodeError 困住了一段时间。

这就是我正在做的事情:

  1. 我根据各种分析创建了一个数据框。数据框总共有 30 列,包含多种类型的值(intstringdatetime 等)。
  2. 我创建了到 Azure 中已安装 MySQL 的远程实例的 SSH 连接。我使用 SQLAlchemy 创建连接。
  3. 我运行 df.to_sql 命令并收到以下错误

UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2013' in position 8: ordinal not in range(256)

我尝试这样做,但似乎不起作用。

engine = create_engine('mysql+pymysql://user:pwd@host:%s/db?charset=utf8' % server.local_bind_port)

我已阅读here我可以使用u.encode('latin-1', 'replace')。但是我是否需要执行该操作并遍历每个 String 列并对其进行编码?或者还有什么我可以做的吗?

最佳答案

这是我想出的解决方案。

我创建了一个函数来对数据中的不同字符进行编码。

def custom_encoder(x):
#Check if the value is Unicode
if type(x)==type(u''):
return x.encode('utf8','ignore')
else:
return x

I 循环遍历所有列并对所有值进行编码。此后,MySQL允许数据写入。

关于Python MySQL编码错误: 'latin-1' codec can't encode character: ordinal not in range(256),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319141/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com