【问题标题】:Pandas "read_sql" UnicodeDecodeError熊猫“read_sql”UnicodeDecodeError
【发布时间】:2017-11-28 10:59:38
【问题描述】:

我使用pandas 从 Vertica 数据库读取数据:

pd.read_sql(query, self._conn)

但它失败了

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 1: invalid continuation byte。

其他查询不会失败,因此问题在此查询的某个特定列中。

我需要所有数据 - 我该怎么办?我也可以在 Vertica 中进行更改,但我无法更改表格值...

附:这就是我为 Vertica 创建连接的方式:

conn_info = url2vertica(url)
conn_info["read_timeout"] = 2400
conn_info["ssl"] = False
vrt = vertica_python.connect(**conn_info)

【问题讨论】:

  • 我认为您需要将一些编码参数传递给您 connect 函数。像charset='utf8' 或类似的东西。我认为它需要匹配您数据库的编码,因为它显然不是“utf-8”。
  • @jeffery_the_wind,是的,我尝试做的第一件事是在某处明确设置“utf-16”,但read_sql 没有此接口

标签: python database pandas vertica


【解决方案1】:

其实我是这样解决的:在sql-query中使用isUTF8()。

同样在here 中,在UTF-8 编码问题 中显示,我们可以通过'unicode_error': 'ignore' 忽略错误。

【讨论】:

  • 问题来自您的连接对象的编码,它似乎不支持 utf8。 0xe9 指的是“é”字母...应该有更好的解决方案通过启用 utf8 支持来解决此问题。不太清楚如何
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 2020-06-03
相关资源
最近更新 更多