PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Restituisce il dataframe Pandas dalla query PostgreSQL con sqlalchemy

Sei morso dai problemi di (in)sensibilità al caso con PostgreSQL. Se citi il ​​nome della tabella nella query, funzionerà:

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

Ma personalmente, consiglierei di usare sempre nomi di tabelle minuscoli (e nomi di colonne), anche quando si scrive la tabella nel database per evitare tali problemi.

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

Per spiegare un po' di più:hai scritto una tabella con il nome Stat_Table al database (e sqlalchemy citerà questo nome, quindi verrà scritto come "Stat_Table" nel database postgres). Quando si esegue la query 'select * from Stat_Table' il nome della tabella senza virgolette verrà convertito in stat_table minuscolo , e così ottieni il messaggio che questa tabella non è stata trovata.

Vedi ad esempio anche I nomi delle colonne PostgreSQL fanno distinzione tra maiuscole e minuscole?