【发布时间】:2020-01-20 04:47:41
【问题描述】:
我正在尝试将 CSV 文件中的一行插入 Heroku 网站上的 Postgres 数据库,代码访问数据库,打开 CSV 文件并访问数据,但也返回 InvalidRequestError。
代码正确地从 CSV 文件中获取数据,我不知道我做错了什么。
数据格式为 CSV 文件: 1416949658,黑暗正在崛起,苏珊·库珀,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) A 绑定参数“isbn”需要值 [SQL:INSERT INTO 书籍 (isbn, title, author_name, publish_year) 值 (%(isbn)s, %(title)s, %(作者名)s, %(发表 _year)s);] [参数: [{'1416949658': '1416949658', 'The Dark Is Rising': 'The Dark Is Rising', 'Susan Cooper': 'Susan Cooper', ' 1973': '1973'}]]
如您所见,它获取数据但仍然返回错误。
【问题讨论】:
-
我认为你需要引用字典键:
{'isbn': isbn, 'title': title, 'author_name': author_name,...
标签: python-3.x postgresql csv flask sqlalchemy