Hãy thử sử dụng 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()
Bạn phải mở tệp bằng python và chuyển nó tới psycopg, sau đó sẽ chuyển nó tới postgres 'stdin. Vì bạn đang sử dụng CSV
đối số cho COPY
, bạn phải sử dụng phiên bản chuyên gia mà bạn tự chuyển tuyên bố COPY.