Frage: Ich versuche, die Daten aus einer Tabelle in SQL Server zu einer anderen Tabelle in Postgresql zu verschieben. Der ETL-Prozess sieht wie folgt aus:Python: Warum sind die Spaltennamen in der PostgreSQL-Tabelle in doppelte Anführungszeichen eingeschlossen?
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
Nachdem die Daten zu Postgresql als test1 übertragen, wenn ich von ihm abfragen versuchen, ich einen Fehler erhalten, dass die Spalte nicht existiert. Es scheint, als ob ich die Spaltennamen in doppelte Anführungszeichen setzen muss, damit die Abfrage ausgeführt werden kann. Gibt es einen Weg dahin?
Fehler sieht wie folgt aus:
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']
Vielleicht werden die Zitate als Teil der Zeichenfolge gelesen? Haben Sie Ihr ETL nach Anführungszeichen suchen und sie entfernen? –
Wenn Sie einen Ausdruck (df.columns), die doppelten Anführungszeichen nicht erscheinen –
und wenn Sie df.loc [0, 'Spalte'] tun? Müssen Sie df.loc [0, 'coloumn' '] –