Importieren Sie Daten stapelweise in Postgresql basierend auf pandas.to_sql

Fokuspunkt:

  1. So erstellen Sie eine Datenbankverbindung
  2. Testen Sie, ob die Verbindung zur Datenbank erfolgreich ist
  3. to_sql-bezogene Parameter

Versionsinformation:

  • Python 3.6
  • Pandas 0.24.2
  • Postgresql 11

Erstellung einer Datenbankverbindung

Sie können psycopg2.connect nicht verwenden, Sie müssen
die Referenzdokumentation zu create_engine verwenden

    engine = create_engine('postgres://' 
                           + 'zentao' + ':' 
                           + 'zentao' + '@' 
                           + '127.0.0.1' + ':' 
                           + '5432' + '/' 
                           + 'test')

Testen Sie, ob die Verbindung zur Datenbank erfolgreich ist

     DB_Session = sessionmaker(bind=engine)
     session = DB_Session()
     data = session.execute("SELECT * FROM table limit 2")
     for row in data:
         for col in row:
             print(col),
         print  
     session.close()

to_sql-bezogenes Parameter
-Referenzdokument

Richtiger Code:

    df.to_sql(name='table_name', schema='schema_name', con=engine, 
              if_exists='append' ,index=False)

Der Punkt ist, dass bei Szenarios mit Schema
der Name nicht erkannt wird, wenn er direkt an schema_name.table_name übergeben wird.

Falscher Code:

    df.to_sql(name='schema_name.table_name', con=engine, 
              if_exists='append' ,index=False)

Der obige Code meldet keinen Fehler, es werden jedoch keine Daten in der Datenbank generiert

Daher müssen Schema und Tabelle separat geschrieben werden.

Supongo que te gusta

Origin blog.csdn.net/weixin_44325637/article/details/102815405
Recomendado
Clasificación