Веб-программирование CS50 - ошибка Postgres SQL при импорте файла books.csv - PullRequest
0 голосов
/ 18 ноября 2018

В моей базе данных 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, она не работает.

                                                         ^

1 Ответ

0 голосов
/ 18 ноября 2018

Вы либо создали таблицу в другой базе данных из той, к которой вы подключаетесь с помощью Python, либо вы назвали ее как-то еще

Я бы проверил с помощью инструмента, с которым вы ее создали ....

...