CS50 Web 编程 - 导入 books.csv 文件时出现 Postgres SQL 错误

CS50 Web Programming - Postgres SQL error while importing books.csv file

在我的 Postgres 数据库中,我制作了 Table 本书。在书里面,我有 5 列 - idtitleauthorisbnyear

我是 运行 我的 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 on git bash:[=22= 时出现以下错误]

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 无法与创建的 table 对话。 table 在检查 psql 中的 table 时出现。但是,当我尝试在 psql 中通过命令行创建不同的 table 时,它不起作用。

                                                         ^

您已经从您使用 Python 连接的数据库在另一个数据库中创建了 table,或者您将其命名为其他名称

我会检查您创建它所用的工具...