admin
发布于 IP属地湖北省

python 插入mysql 提示报错not all arguments converted during string formatting

python mysql not all arguments converted during string formatting
报错解释:

这个错误通常发生在使用Python的数据库接口与MySQL数据库交互时,当你尝试执行一个SQL语句,并且该SQL语句中包含占位符(通常是%s),但是在后续传入的参数与占位符数量不匹配时,就会出现这个错误。

解决方法:

检查SQL语句中的占位符数量是否与你提供的参数数量相匹配。

确保使用元组(如果有多个参数)或者列表来传递参数,并且元组或列表中的元素数量与占位符数量相等。

示例:

  import mysql.connector
 
# 假设你有以下SQL语句,其中有两个占位符(%s)
sql = "INSERT INTO table_name (column1, column2) VALUES (%s, %s)"
 
# 当你执行这个SQL语句时,确保提供一个包含两个元素的元组或列表
# 正确的做法
data = (value1, value2)
cursor.execute(sql, data)
 
# 错误的做法
# cursor.execute(sql, value1)  # 如果只提供一个参数,将会导致错误
 
# 如果你有多个参数,确保用元组包裹它们
cursor.execute(sql, (value1, value2, value3))
如果在使用字典来传递参数,确保字典的键与SQL语句中的占位符相对应。

# 如果SQL语句使用的是命名占位符(如:param)
sql = "INSERT INTO table_name (column1, column2) VALUES (:param1, :param2)"
data = {'param1': value1, 'param2': value2}
cursor.execute(sql, data)
浏览 (470)
点赞
收藏
评论