質問: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
をtest1のようPostgresqlのにデータを転送した後、私はそれから照会しようとしたとき、私は列が存在しないというエラーを取得します。実行するクエリの二重引用符で囲んだ列名を指定する必要があるようです。これを回避する方法はありますか?
エラーは次のようになります。
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"']を実行する必要がありますか? –