我正在尝试遍历数据帧并从单个列中获取值以用作sql查询中的参数。
for index,frame in df1.iterrows():
sql = "select * from issuers where column_1 = %s;"
cur.execute(sql, frame['column_1'])
row = cur.fetchone()
id = row[0]
print id
但是我遇到了以下错误
“ TypeError:在字符串格式化期间并非所有参数都已转换”
我该如何解决?如果需要添加多个参数,该怎么办?
答案 0 :(得分:1)
代替此:
cur.execute(sql, frame['column_1'])
尝试一下:
cur.execute(sql, [frame['column_1']])
execute
的第二个参数是一个列表,其中包含要插入sql
的所有值。
要插入多个值,请使用以下内容:
sql = "select * from issuers where column_1 = %s and column_2 = %s;"
cur.execute(sql, ["val1", "val2"])
有关更多信息,请参阅documentation
编辑
以下是INSERT INTO
在SQL中的示例。
sql = "INSERT INTO user (firstname, lastname) VALUES (%s, %s)"
cur.execute(sql, ["John", "Doe"])