PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zwróć ramkę danych Pandas z zapytania PostgreSQL za pomocą sqlalchemy

Jesteś ugryziony przez problemy z (nie)wrażliwością na sprawy w PostgreSQL. Jeśli zacytujesz nazwę tabeli w zapytaniu, zadziała:

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

Ale osobiście radziłbym, aby zawsze używać nazw tabel małymi literami (i nazw kolumn), również podczas zapisywania tabeli do bazy danych, aby zapobiec takim problemom.

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

Aby wyjaśnić nieco więcej:napisałeś tabelę o nazwie Stat_Table do bazy danych (a sqlalchemy zacytuje tę nazwę, więc zostanie zapisana jako "Stat_Table" w bazie danych postgres). Podczas wykonywania zapytania 'select * from Stat_Table' niecytowana nazwa tabeli zostanie przekonwertowana na małe litery stat_table , a więc otrzymujesz komunikat, że ta tabela nie została znaleziona.

Zobacz np. Czy w nazwach kolumn PostgreSQL jest rozróżniana wielkość liter?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SET extra_float_digits =3 w postgresql

  2. Polecenie rozmiaru bazy danych Postgres

  3. Kolumna postgreSQL nie istnieje, gdzie foo jest wartością

  4. PGError:ERROR:relacja delayed_jobs nie istnieje (Postgresql, rails 3.04, delayed_job error)

  5. Partycjonowanie listy w Postgres 12