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

come creare automaticamente tabelle basate su CSV in postgres usando python

ho provato il tuo codice e funziona bene

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()

anche se ho dovuto apportare alcune modifiche affinché funzionasse:ho dovuto nominare la tabella abstable1 perché utilizzando abs.abstable1 postgres presuppone che io stia utilizzando lo schema abs , forse hai creato quello schema sul tuo database se non lo controlli, inoltre sto usando python 3.7 ho notato che stai usando python 2.7 (che penso non sia più supportato), questo potrebbe causare problemi, dal momento che dici di esserlo imparando, ti consiglierei di usare python 3 poiché ora è più utilizzato e molto probabilmente incontri del codice scritto su di esso e dovresti adattare il tuo codice per adattarlo a python 2.7