带有pandas.read_sql的UnicodeDecodeError

时间:2016-10-25 04:41:42

标签: python pandas unicode

UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 8: character maps to <undefined>

在简单的SQL查询中看到错误:

df = pd.read_sql(query,connection)

我在sql开发人员上正常尝试了查询,它运行得很好..在这里如何在read_sql调用中指定编码真的难倒了

使用Python 3.4和pandas版本0.14.1

非常感谢!

2 个答案:

答案 0 :(得分:6)

根据oracle docs,您的数据库的正确编码为iso-8859-1 所以当您connect()到您的数据库时,请通过charset='iso-8859-1'encoding='iso-8859-1'尝试两者。

答案 1 :(得分:1)

Python3.7:

con = sqlite3.connect(path_to_db)
encoding = "latin1"
con.text_factory = lambda x: str(x, encoding)
# do not preserve non-printable
# con.text_factory = lambda x: str(x, "ascii", errors="ignore")
data = pd.read_sql_query(QUERY, con)

Pydocs on text_factory