0
問題:我試圖將數據從SQL Server中的一個表移動到Postgresql中的另一個表。 ETL過程是這樣的:Python:爲什麼PostgreSQL表中的列名使用雙引號括起來?
def transfer_data():
sql = """SELECT TOP(100) * FROM LoanAgreements"""
df = pd.read_sql(sql, lms_conn)
df.to_sql(PG_TABLE, engine, schema=PG_SCHEMA, if_exists='replace', index=False)
def get_data():
sql = """SELECT LoanAgreementID FROM rileys_schema.test1"""
df = pd.read_sql(sql, engine)
return df
將數據傳輸到PostgreSQL爲Test1後,當我試圖從它來查詢,我得到一個錯誤說,列不存在。看起來好像我必須指定包含在雙引號中的列名來執行查詢。有沒有解決的辦法?
錯誤看起來是這樣的:
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) column "loanagreementid" does not exist
LINE 1: SELECT LoanAgreementID FROM rileys_schema.test1
^
[SQL: 'SELECT LoanAgreementID FROM rileys_schema.test1']
也許引號被視爲字符串的一部分?讓你的etl尋找引號並刪除它們? –
當您執行打印(df.columns)時,雙引號不會出現 –
並且當您執行df.loc [0,'column']時?它是否需要你做df.loc [0,'「coloumn」'] –