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

wie man mit Python automatisch eine Tabelle basierend auf CSV in Postgres erstellt

Ich habe Ihren Code ausprobiert und funktioniert einwandfrei

import psycopg2

conn = psycopg2.connect("host= 127.0.0.1 dbname=testdb user=postgres password=postgres")
print("Connecting to Database")
cur = conn.cursor()

'''cur.execute("""CREATE TABLE abstable1(
absid varchar(10) PRIMARY KEY,
name integer,
number integer 
)
""")'''

with open('lolo.csv', 'r') as f:
    next(f)
    cur.copy_from(f, 'abstable1', sep=',', columns=('absid', 'name', 'number'))

conn.commit()
conn.close()

obwohl ich einige Änderungen vornehmen musste, damit es funktionierte:Ich musste die Tabelle abstable1 nennen weil mit abs.abstable1 postgres geht davon aus, dass ich das Schema abs verwende , vielleicht haben Sie dieses Schema in Ihrer Datenbank erstellt, wenn Sie das nicht überprüfen. Außerdem verwende ich Python 3.7. Ich habe festgestellt, dass Sie Python 2.7 verwenden (was meiner Meinung nach nicht mehr unterstützt wird). Dies kann zu Problemen führen, da Sie sagen, dass Sie es sind Lernen Ich würde empfehlen, dass Sie Python 3 verwenden, da es jetzt häufiger verwendet wird und Sie höchstwahrscheinlich auf Code stoßen, der darauf geschrieben ist, und Sie Ihren Code an Ihren Python 2.7 anpassen müssten