PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro ao importar CSV para postgres com python e psycopg2


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

Você tem que abrir o arquivo em python e passe-o para o psycopg, que o encaminha para o stdin do postgres. Como você está usando o CSV argumento para COPY , você deve usar a versão expert na qual você mesmo passa a instrução COPY.