Я пытаюсь вставить строку из файла CSV в базу данных Postgres, которая находится на веб-сайте Heroku, код доступа к базе данных, открывает файл CSV и доступ к данным, но также возвращает ошибку InvalidRequestError.
Код правильно выбирает данные из файла CSV, я не знаю, что я делаю неправильно.
формат данных в файле CSV: 1416949658, The Dark Is Rising, Сьюзан Купер, 1973
Структура таблицы:
CREATE TABLE books(
id SERIAL PRIMARY KEY,
isbn VARCHAR NOT NULL,
title VARCHAR NOT NULL,
author_name VARCHAR NOT NULL,
publish_year INTEGER NOT NULL
);
for isbn, title, author_name, publish_year in reader:
db.execute("INSERT INTO books (isbn, title, author_name, publish_year) VALUES (:isbn, :title, :author_name, :publish_year)",\
{isbn: isbn, title: title, author_name: author_name, publish_year: publish_year})
print(f"Added book {title} written by {author_name} with isbn {isbn} on year {publish_year}")
db.commit()
sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) Для параметра привязки 'isbn' требуется значение [SQL: INSERT INTObooks (isbn, title, author_name, publish_year) ЗНАЧЕНИЯ (% (isbn) s,% (title) s,% (author_name) s,% (publish _year) s);] [параметры: [{'1416949658': '1416949658',' The Dark Rising ':' The Dark Rising ',' Susan Cooper ':' Susan Cooper ',' 1973 ':' 1973 '}]]
Как вы видите, это приноситданные, но по-прежнему возвращает ошибку.