Python3.4 int对象不可迭代 - MySQLdb

时间:2016-09-03 15:28:57

标签: python mysql-python

我正在运行python3.4,我正在尝试使用MySQLdb库运行查询。

我已经完成了一个成功的查询,但现在我遇到了查询中的整数问题。这是代码:

                location = player_info[6]

                query2 = ("SELECT name FROM locations WHERE id=%d");
                execute = cursor.execute(query2, (location));

变量位置的值是2.我只是不断收到错误:

  

在tryLogin中的第75行文件“login.py”       execute = cursor.execute(query2,(location));

     

文件“/usr/lib/python3/dist-packages/MySQLdb/cursors.py”,第195行,in   执行       args = tuple(map(db.literal,args))TypeError:'int'对象不可迭代

我尝试将%d更改为%s,因为有人说它应该全部采用字符串格式,但我仍然会遇到同样的错误。

我还尝试将“location”变量简单地改为:

location = 2

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

            execute = cursor.execute(query2, (location));

在python中,(location)是带括号的表达式,而不是元组。为了强制它成为元组,您需要添加逗号:(location,)

            execute = cursor.execute(query2, (location,));