【发布时间】:2021-05-13 15:47:56
【问题描述】:
我正在尝试使用存储在列表中的数据将数据插入到我的 sql 表中 我使用的代码是:
for index, row in df.iterrows():
cursor.execute("INSERT INTO final_attendance (Fac_id,Subject,Name,roll_id) VALUES ({fac}, {sub}, {name}, {roll})".format(
fac = row['Fac_id'],
sub = row['Subject'],
name = row['Name'],
roll = row['roll_id']))
但是当我运行这段代码时,sql 将存储在列表中的数据视为列名而不是普通的 Varchar
例如: 输入数据的正确sql语法是
INSERT INTO final_attendance (Fac_id, Subject, Name, roll_id)
VALUES ("PRD", "CSE", "Tanmay Pardhi", 59)
但是我的代码写的是
INSERT INTO final_attendance (Fac_id, Subject, Name, roll_id)
VALUES (PRD, CSE, Tanmay Pardhi, 59)
因此它将 PRD 视为列名 执行错误是“'字段列表中的未知列'PRD'”
提前致谢!
【问题讨论】:
-
字符串文字必须用引号括起来。试试
.. VALUES ('{fac}', '{sub}', '{name}', {roll})(因为数值所以没有引用roll) -
尝试用双引号保护列,用单引号保护字符串。如果您需要在 python 字符串中转义引号,请使用
\。 -
非常感谢@Akina。我花了几个小时试图连接那些撇号。感谢您的帮助。
-
是的,会记住这一点@AlexanderEble。感谢您的宝贵时间。