使用Python循环更新MySQL表时遇参数格式错误求助
问题解决:MySQL execute参数类型错误
错误原因
你遇到的错误是因为MySQL Python驱动的execute()方法要求参数必须是元组、列表或字典类型,不能直接传入单个浮点数。驱动需要通过序列/字典来匹配SQL语句中的占位符%s。
修正代码
把单个浮点数包装成元组(推荐)或者列表即可:
mycursor = mydb.cursor() sql = "UPDATE currencies SET coefficient = %s" val = 0.03137 # 用元组包装参数,注意逗号不能少,避免被当成单个变量 mycursor.execute(sql, (val,)) mydb.commit()
或者用列表形式:
mycursor.execute(sql, [val])
额外实用提示
当前SQL语句会更新currencies表中所有行的coefficient字段,如果只想更新特定货币的汇率,一定要加上WHERE子句,避免误操作全表数据,示例:
sql = "UPDATE currencies SET coefficient = %s WHERE currency_code = %s" val = (0.03137, "USD") mycursor.execute(sql, val)
内容的提问来源于stack exchange,提问作者Victor Major
相关产品推荐
相关产品推荐

