字符串格式错误?

时间:2017-01-11 12:23:58

标签: python mysql

在这里遇到麻烦,当我有多个(%s,%s)和数据(用户,通过)或类似的东西时,它有效。

但是使用以下代码我会一直收到此错误。

query = query % tuple([db.literal(item) for item in args])
TypeError: not all arguments converted during string formatting

为什么会一直这样?只有在只有一个参数

时才会发生

此代码来自我的烧瓶应用程序

    username = request.values['username']
    update_stmt = (
      "UPDATE ACCOUNTS SET IN_USE = 1 WHERE USER = '(%s)'"
    )

    data = (username)

    cursor.execute(update_stmt,data)

1 个答案:

答案 0 :(得分:4)

要将单值元组识别为元组,您需要尾随,

data = (username,)

无关紧要,你真的不需要在你的查询中引用

"UPDATE ACCOUNTS SET IN_USE = 1 WHERE USER = (%s)"

您的完整代码应为

username = request.values['username']
update_stmt = (
  "UPDATE ACCOUNTS SET IN_USE = 1 WHERE USER = (%s)"
)

data = (username,)

cursor.execute(update_stmt,data)