这是我在这里的cs50w项目中,我试图import books.csv文件到postgresql数据库,但我得到了一些错误,我想我有一些问题,我的脚本可以有人纠正它...
import psycopg2
import csv
#For connecting to the database
conn = psycopg2.connect("host=hostname_here port=5432 dbname=dbname_here user=username_here password=pass_here")
cur = conn.cursor()
#importing csv file
with open('books.csv', 'r') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
cur.execute("INSERT INTO book VALUES (%s, %s, %s, %s)",
row
)
conn.commit()
Traceback (most recent call last):
File "import.py", line 15, in <module>
row
psycopg2.errors.SyntaxError: INSERT has more expressions than target columns
LINE 1: INSERT INTO book VALUES ('0380795272', 'Krondor: The Betraya...
csv文件的样本: csv文件的样本:
分析解答
INSERT has more expressions than target columns.
您正在试图插入具有4个值中的某一行有不超过4列的表。
但如果表确实有4列,您需要检查您的数据源(books.cvs)源数据可能有一些单引号或逗号。无论是从文件中删除有问题的数据或修改你的程序正确处理数据。