我正在尝试使用psycopg2和pandas.io.sql软件包从PostgreSQL数据库读取表到熊猫:
connection = psycopg2.connect(host = host,port = port,database = database,user = user,> password = password)
sql = f"""SELECT * FROM my_table;"""
df = sqlio.read_sql_query(sql,connection)
其中一列中包含泰文字符,导致出现此错误:
Traceback (most recent call last):
File ".../example_postgresql.py",line 32,in <module>
df = sqlio.read_sql_query(sql,connection)
File ".../lib/python3.6/site-packages/pandas/io/sql.py",line 332,in read_sql_query
chunksize=chunksize,File ".../lib/python3.6/site-packages/pandas/io/sql.py",line 1658,in read_query
data = self._fetchall_as_list(cursor)
File ".../lib/python3.6/site-packages/pandas/io/sql.py",line 1671,in _fetchall_as_list
result = cur.fetchall()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
如果我删除该列,则可以读取该表。是否有对此的任何直接修复?
版本为:
- python 3.6
- 熊猫0.25.3
- psycopg2 2.8.4