PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

comment créer automatiquement une table basée sur CSV dans postgres en utilisant python

j'ai essayé votre code et fonctionne bien

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

même si j'ai dû apporter quelques modifications pour que cela fonctionne :j'ai dû nommer la table abstable1 parce qu'en utilisant abs.abstable1 postgres suppose que j'utilise le schéma abs , peut-être avez-vous créé ce schéma sur votre base de données sinon vérifiez cela, j'utilise également python 3.7 j'ai remarqué que vous utilisez python 2.7 (qui, je pense, n'est plus pris en charge), cela peut causer des problèmes, puisque vous dites que vous êtes apprendre, je vous recommanderais d'utiliser python 3 car il est plus utilisé maintenant et vous rencontrerez très probablement du code écrit dessus et vous devrez adapter votre code pour l'adapter à votre python 2.7