使用pg8000模块读取时如何修复编程错误

时间:2019-04-24 10:24:27

标签: python postgresql amazon-web-services

嗨,我正在尝试使用胶水作业将AWS Redshift中的表查询到熊猫数据框。我正在使用pg8000进行连接(因为aws胶不支持sqlalchemy)。

当我使用熊猫的read_sql或read_sql_query函数查询表时,我在数据帧中得到了额外的字符,我猜这是pg8000 dbapi的问题

conn = pg8000.connect(user = 'postgres', password = '*****', host =127.0.0.1,  port = 5439, database = 'lifungdb')

cursor = conn.cursor()
df=pd.read_sql("select * from Customer",conn)
print(df)

print(df)返回的列中包含exta char b。如何剥离多余的字符

b'id'  b'Name' b'Address' b'Contact
 1       Sam     Texas       na

1 个答案:

答案 0 :(得分:0)

使用list-comprehension解码utf-8字符串:

import pandas as pd
a = [['1', 'sam', 'Texas', 'na']]
df = pd.DataFrame(a, columns=[b'id', b'Name', b'Address', b'Contact'])
df.columns = [x.decode('utf-8') for x in df.columns]
print(df)

输出

  id Name Address Contact
0  1  sam   Texas      na