sql >> Databasteknik >  >> RDS >> PostgreSQL

Returnera Pandas dataram från PostgreSQL-fråga med sqlalchemy

Du är biten av fall (o)känslighetsproblem med PostgreSQL. Om du citerar tabellnamnet i frågan kommer det att fungera:

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

Men personligen skulle jag råda dig att alltid använda gemener tabellnamn (och kolumnnamn), även när du skriver tabellen till databasen för att förhindra sådana problem.

Från PostgreSQL-dokumenten (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):

För att förklara lite mer:du har skrivit en tabell med namnet Stat_Table till databasen (och sqlalchemy kommer att citera detta namn, så det kommer att skrivas som "Stat_Table" i postgres-databasen). När du gör frågan 'select * from Stat_Table' tabellnamnet utan citattecken kommer att konverteras till små bokstäver stat_table , och så får du meddelandet att den här tabellen inte hittas.

Se t.ex. även Är PostgreSQL-kolumnnamn skiftlägeskänsliga?



  1. MySQL använder inte index när man frågar över BIT-fält med hjälp av bitvisa funktioner

  2. Anropa funktion från DLL (c#) i Oracle Forms

  3. Förstå händelseförlust med utökade händelser

  4. Uppdatera med Join-fråga i Oracle