【问题标题】:how can I don't get the mysql convert tuple error?我怎么不能得到 mysql convert tuple 错误?
【发布时间】:2019-04-19 11:30:13
【问题描述】:

我只想使用 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用newAbilities1替换oldAbilities。

【问题讨论】:

  • 2%d' 缺少报价?
  • 三文鱼,我在这里写的时候写错了。对不起。
  • 还是错 %d' ?
  • 我重写了,但我仍然报这个错误。
  • 您编辑了您的问题 - 如果您使用这个确切的代码,错误是否仍然存在?

标签: python mysql python-3.x pyodbc


【解决方案1】:

如果您正确复制和粘贴代码,则执行后缺少双引号 " "。我假设您使用 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()

【讨论】:

  • 我重写但同样的错误。 mysql.connector.errors.ProgrammingError:处理格式参数失败; Python 'tuple' 无法转换为 MySQL 类型
  • 那么您使用的变量之一 (checkNewAbility, url[0], oldAbility[0]) 类型错误。它们应该是字符串或整数。您应该调试您的程序(例如将它们打印到控制台)并检查变量的内容。
  • 我发现了我的错。 oldAbility [1] 梦想获得编程语言。但我看到你把它们都拿走了。我想获得编程语言,而不仅仅是数字。
猜你喜欢
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多