首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在用pg8000读取红移数据时避免字节引用的列标题

如何在用pg8000读取红移数据时避免字节引用的列标题
EN

Stack Overflow用户
提问于 2019-05-14 13:24:03
回答 1查看 182关注 0票数 1

我正在通过pg8000在pandas中加载一些红移数据:

代码语言:javascript
复制
>>>> df = pd.read_sql(sql_text, pg8000_cnx)

pg8000_cnx是到红移数据库的连接对象。我总是得到带字节引号的列,例如:

代码语言:javascript
复制
>>> df.columns
Index([b'column_',
       b'column_2',
       ...
       b'column_n'],
       dtype='object', length=142)

我知道我可以使用.decode('utf-8')和一些列表理解将列转换回字符串,但我试图将它们从redshift本身加载为字符串格式。尝试使用pg8000游标玩不同的CLIENT_ENCODING设置,但在pandas df中仍然得到字节引用的列。

代码语言:javascript
复制
import pg8000
conn = pg8000.connect(**db_details)
cursor = conn.cursor()
cursor.execute("SET CLIENT_ENCODING TO 'UTF8'")
cursor.execute(sql)
cursor.fetchone()
# load df here

有没有一些我遗漏的红移或pg8000选项,可以从数据库连接对象本身加载utf-8解码字符串中的列标题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-31 16:48:55

这是pg8000 1.16.6中的fixed,所以升级到最新版本应该可以解决这个问题。

因此,从verion 1.16.6开始,pg8000以str而不是bytes的形式返回列名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56123518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档