В моей базе данных Postgres я сделал Table
книг. Внутри книги у меня есть 5 колонок - id
, title
, author
, isbn
, year
.
Я выполняю свой код import.py, как показано ниже, для импорта содержимого books.csv: -
import csv
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
def main():
f = open("books.csv")
reader = csv.reader(f)
for isbn, title, author, year in reader:
db.execute("INSERT INTO books (isbn, title, author, year) VALUES (:isbn, :title, :author, :year)",
{"isbn": isbn, "title": title, "author": author, "year": year})
print(f"Added book with isbn {isbn}.")
db.commit()
if __name__ == "__main__":
main()
Когда я пытаюсь импортировать в мои столбцы, я получаю следующую ошибку при запуске python import.py
на git bash:
psycopg2.DataError: invalid input syntax for integer: "isbn"
LINE 1: ...RT INTO books (isbn, title, author, year) VALUES ('isbn', 't...
.. [SQL: 'INSERT INTO books (isbn, title, author, year) VALUES (%(isbn)s, %(title)s, %(author)s, %(year)s)']
[parameters: {'isbn': 'isbn', 'title': 'title', 'author': 'author', 'year': 'year'}]
(Background on this error at: http://sqlalche.me/e/9h9h)
import.py не может связаться с созданной таблицей. Таблица появляется при проверке таблицы в psql. Однако, когда я пытаюсь создать другую таблицу с помощью командной строки в psql, она не работает.
^