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

Erreur lors de l'importation de CSV vers postgres avec python et psycopg2

Essayez d'utiliser cursor.copy_expert() :

constr = "dbname='db_name' user='user' host='localhost' password='pass'"
conn = psycopg2.connect(constr)
cur = conn.cursor()
sqlstr = "COPY test_2 FROM STDIN DELIMITER ',' CSV"
with open('/tmp/tmpJopiUG/downloaded_xls.csv') as f:
    cur.copy_expert(sqlstr, f)
conn.commit()

Vous devez ouvrir le fichier en python et transmettez-le à psycopg, qui le transmet ensuite au stdin de postgres. Puisque vous utilisez le CSV argument de COPY , vous devez utiliser la version experte dans laquelle vous transmettez vous-même l'instruction COPY.