Я новичок в SQL и PostgreSQL, и я не могу понять, что происходит с этим кодом.
Я пытаюсь вставить csv в postgres с помощью этого кода:
import csv
import psycopg2 as pg
filename = 'myfile.csv'
try:
conn = pg.connect(user="myuser",
password="mypass",
host="myhost",
port="5432",
database="mydb")
cursor = conn.cursor()
with open(filename, 'r') as f:
reader = csv.reader(f)
next(reader) # This skips the 1st row which is the header.
for record in reader:
print(record)
cursor.execute("""INSERT INTO auth VALUES (%s, %s, %s, %s)""", record)
conn.commit()
except (Exception, pg.Error) as e:
print(e)
finally:
if (conn):
cursor.close()
conn.close()
print("Connection closed.")
, но он вызывает вставка ошибки имеет больше целевых столбцов, чем выражения LINE 1: ... 00000000-0000-0000-0000-000000000000 ',' 1580463062 ',' auto ')
но вот что я хочу вставить ['00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', '1580463062', 'auto'], и похоже, что в нем определенно ровно 4 colums
Я также пытался изменить кодировку csv с ASCII на UTF-8 и UTF-8_SIG, но я все равно получаю эту ошибку