Python 我怎么能不';无法获取mysql转换元组错误?

Python 我怎么能不';无法获取mysql转换元组错误?,python,mysql,python-3.x,pyodbc,Python,Mysql,Python 3.x,Pyodbc,我只想使用UPDATE命令刷新。这就产生了错误,我在哪里犯错误 for checkNewAbility in list(newAbilities1): if not checkNewAbility in list(oldAbility[1]): my_cursor.execute( "UPDATE mydb.skill SET skill_name='%s' WHERE Person_person_id='%s'

我只想使用UPDATE命令刷新。这就产生了错误,我在哪里犯错误

for checkNewAbility in list(newAbilities1):
    if not checkNewAbility in list(oldAbility[1]):
        my_cursor.execute(
           "UPDATE mydb.skill SET skill_name='%s' WHERE Person_person_id='%s' 
                AND skill_id='%d';",(checkNewAbility, url[0], oldAbility[0]))
        realdb.commit()
错误:

处理格式参数失败;%s“%err” mysql.connector.errors.ProgrammingError:处理失败 格式参数;Python“tuple”无法转换为MySQL类型

我的列表有:

oldAbility=[(43,'PHP'),(44,'HTML'),(45,'CSS')]

newAbilities1=['Java'、'Python'、'JavaScript']

我只想根据id用新能力1替换旧能力


如果您复制并粘贴了正确的代码,则在执行(.I假设您使用pyodbc)之后缺少双引号“”

for checkNewAbility in list(newAbilities1):
    if not checkNewAbility in list(oldAbility[1]):
        my_cursor.execute("UPDATE mydb.skill SET skill_name='?' WHERE Person_person_id='?' AND skill_id='?'", (checkNewAbility, url[0], oldAbility[0]))
        realdb.commit()

2%d'缺少引号?Salmon,我在这里写的时候写错了。抱歉。仍然错误%d'?我重写了,但我仍然犯了这个错误。你编辑了你的问题-如果你使用这个完全相同的代码,错误是否会持续?我重写了,但错误相同。mysql.connector.errors.ProgrammingError:处理格式参数失败;Python“tuple”无法转换为MySQL类型然后您使用的一个变量(checkNewAbility,url[0],oldAbility[0])的类型错误。它们应该是字符串或整数。您应该调试程序(如将它们打印到控制台)并检查变量的内容。我发现了我的错误。oldAbility[1]我梦想得到编程语言。但我看到你把它们都拿走了。我想得到编程语言,而不仅仅是数字。