假设我有下表的红移:
a | b
-----
1 | 2
3 | 4
如果我想把它从Redshift提取到pd.DataFrame
,我可以这样做:
import redshift_connector
import pandas as pd
query = 'SELECT * FROM table'
conn = redshift_connector(user=user, host=host, password=password, port=port, database=database)
df = pd.read_sql_query(query, conn)
我正在使用下面的包redshift_connector。但问题是df
中的列名是字节字符串:
df['a']
这将返回一个错误,因为列的名称是b'a'
。有人知道任何解决方法吗?我已经用psycopg2
写了代码,它使用普通字符串,因此希望有一个解决方案,不改变太多的代码。
编辑:
版本
Python = 3.9.7
Redshift-connector = 2.0.889
Pandas= 1.2.5
2条答案
按热度按时间jyztefdp1#
你一句话就能搞定
或者不使用
pd.read_sql_query
,而是使用文档中建议的连接方法ejk8hzay2#
这在redshift-connector的v2.0.908中得到修复