这是我在这里的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)源数据可能有一些单引号或逗号。无论是从文件中删除有问题的数据或修改你的程序正确处理数据。