我正在尝试使用参数化查询更新mysql数据库中的值。但在运行以下代码之后:
df = pd.read_sql('SELECT * FROM df LIMIT 3', con=db_connection)
print(df.shape)
labels = ('I1','I2','I3')
ids = (123456,123457,123458)
data = (labels,ids)
cursor = db_connection.cursor()
for i in df.id:
cursor.execute("UPDATE df SET label = %s WHERE id= %d",data)
db_connection.commit()
db_connection.close()
我得到这个错误:typeerror:%d格式:需要一个数字,而不是str
“id”的数据类型在数据库中是int。我只提供数字。不知道为什么会抛出这样的错误。。。
3条答案
按热度按时间kqlmhetl1#
在我的例子中,我使用的是炼金术,我在创建模型时犯了一个错误
我写道
相反
htrmnn0y2#
感谢alemerich的帮助,我是以这种格式提供数据的
但当我这样做的时候:
现在可以了。
nxowjjhe3#
数据中有一个元组。编译器似乎试图格式化“%d”中的“i2”变量。