【发布时间】:2017-06-02 00:38:12
【问题描述】:
我已经被 Python 中的 UnicodeEncodeError 卡住了一段时间。
这是我正在做的事情:
- 我创建了一个数据框作为各种分析的结果。数据框总共有 30 列,包含多种类型的值(
int、string、datetime等)。 - 我在已安装 MySQL 的 Azure 中创建了一个远程实例的 SSH 连接。我使用
SQLAlchemy创建连接。 - 我运行
df.to_sql命令并得到以下错误
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2013' 在第 8 位:序数不在范围内(256)
我试过这样做,但似乎没有用。
engine = create_engine('mysql+pymysql://user:pwd@host:%s/db?charset=utf8' % server.local_bind_port)
我已阅读 here,我可以使用 u.encode('latin-1', 'replace')。但是我是否需要执行该操作并遍历每个 String 列并对其进行编码?或者还有什么我可以做的吗?
【问题讨论】:
-
你用的是哪个版本的python?
-
@pshep123 - 在 Azure 中我使用 Python 2.7.12 - 在我的本地 PC 2.7.13 Anaconda 4.4.0
-
谢谢。不幸的是,我无法为您提供帮助,但我自己也遇到了 unicode 问题,通过我最近的研究,我意识到 python 3 和 python 2 处理文本格式的方式不同,因此对那些更重要的人来说很重要比我知识渊博知道哪个版本。在此期间,这里有一些阅读:docs.python.org/2/howto/unicode.html,可能会有所帮助。