import io
import csv
import datetime
import psycopg2
import glob
conn = psycopg2.connect("host= 127.0.0.1 dbname=postgres user=postgres password=123 client_encoding='utf8' ")
f = io.StringIO()
w = csv.writer(f)
f.seek(0)
cursor = conn.cursor()
cursor.copy_expert(f""" COPY ama3 FROM 'C:/abc/asd.csv' (FORMAT CSV)""", f)
conn.commit()
錯誤:CharacterNotInRepertoire:錯誤:語言編碼“UTF8”的位元組序列無效:
csv 檔案包含包含“?,i,?,?,?”的字母。我認為錯誤是由此引起的,但我不想改變它們。
uj5u.com熱心網友回復:
您不是從 ptyhon 添加資料,而是使用 PostgreSQLcopy命令直接從檔案系統添加資料。確保您的 csv 檔案是 UTF-8 編碼的。
在 linux/mac 中,您可以輕松執行以下操作:
$ file /abc/asd.csv
在 Windows 中并不是那么簡單(我假設您使用的是 Windows)。
在 Windows 中,您可以:
使用 Windows 附帶的常規舊香草記事本打開您的檔案。單擊 時,它將顯示檔案的編碼Save As...。

如果它不是 UTF-8,請轉換它并再次嘗試運行您的腳本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395778.html
標籤:Python 蟒蛇-3.x PostgreSQL的 pgadmin-4
