【问题标题】:Python3.4 int object is not iterable - MySQLdbPython3.4 int 对象不可迭代 - MySQLdb
【发布时间】:2016-09-03 15:28:57
【问题描述】:

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

我已经完成了一次成功的查询,但现在在查询中遇到整数时我被卡住了。代码如下:

                location = player_info[6]

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

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

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

文件“/usr/lib/python3/dist-packages/MySQLdb/cursors.py”,第 195 行,在 执行 args = tuple(map(db.literal, args)) TypeError: 'int' object is not iterable

我试图将 %d 更改为 %s,因为有人说它应该都是字符串格式,但我仍然得到同样的错误。

我也尝试将“位置”变量更改为简单:

位置 = 2

有什么想法吗?

【问题讨论】:

标签: python mysql-python


【解决方案1】:
            execute = cursor.execute(query2, (location));

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

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

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 2012-06-21
    • 1970-01-01
    • 2017-09-11
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多