sql >> Base de Datos >  >> RDS >> PostgreSQL

Error al importar CSV a postgres con python y psycopg2

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

Tienes que abrir el archivo en python y páselo a psycopg, que luego lo reenvía a la entrada estándar de postgres. Ya que estás usando el CSV argumento para COPY , debe usar la versión experta en la que usted mismo pasa la instrucción COPY.