【问题标题】:Unable to read data from Redshift with column names having space无法从 Redshift 读取列名有空格的数据
【发布时间】:2019-03-07 08:51:15
【问题描述】:

目前我面临一个问题,即从 redshift 连接将数据读入 Python。我能够从 Python 连接到 redshift 服务器并且还能够获取数据。

在对中间有“空格”的列名应用过滤器时出现问题。我尝试了几种组合通过查询得到过滤后的数据,但没有结果。

这是我用来将 Python 连接到 redshift 服务器的代码 sn-p。

import pandas as pd
import psycopg2
con = psycopg2.connect(dbname= 'dbname', host='hostname', port= 'portnumber', 
                                     user= 'username', password= 'password')
query = "select * from schema.table_name WHERE schema.table_name.part number='123456'
df = pd.read_sql(query, con)

在上面的代码中,我只想获取“零件号”=“123456”的数据。但是由于中间的空间,我得到了错误。我还尝试了 [part number] 、 'part number' 、 {part number} 、 (part number) 等组合。

需要您的支持才能找到解决此问题的任何方法。

【问题讨论】:

  • 这就是为什么在列名中使用空格总是是个坏主意。

标签: python python-3.x postgresql amazon-redshift psycopg2


【解决方案1】:

试试

query = "select * from schema.table_name WHERE schema.table_name.\"part number\"='123456';"

或者只是

query = "select * from schema.table_name WHERE \"part number\"='123456';"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2017-10-12
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多