PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Geben Sie den Pandas-Datenrahmen aus der PostgreSQL-Abfrage mit sqlalchemy zurück

Sie werden von den Problemen mit der Groß-/Kleinschreibung bei PostgreSQL gebissen. Wenn Sie den Tabellennamen in der Abfrage angeben, funktioniert es:

df = pd.read_sql_query('select * from "Stat_Table"',con=engine)

Aber ich persönlich würde raten, Tabellennamen (und Spaltennamen) immer in Kleinbuchstaben zu verwenden, auch wenn die Tabelle in die Datenbank geschrieben wird, um solche Probleme zu vermeiden.

Aus den PostgreSQL-Dokumenten (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):

Zur Erläuterung:Sie haben eine Tabelle mit dem Namen Stat_Table geschrieben in die Datenbank (und sqlalchemy zitiert diesen Namen, sodass er in der Postgres-Datenbank als "Stat_Table" geschrieben wird). Bei der Abfrage 'select * from Stat_Table' der Tabellenname ohne Anführungszeichen wird in Kleinbuchstaben umgewandelt stat_table , und so erhalten Sie die Meldung, dass diese Tabelle nicht gefunden wird.

Siehe zB auch Sind PostgreSQL Spaltennamen case-sensitive?