【问题标题】:TypeError("'bool' object is not iterable",) when trying to return a BooleanTypeError("'bool' object is not iterable",) 尝试返回布尔值时
【发布时间】:2013-07-11 21:44:15
【问题描述】:

我遇到了一个奇怪的问题。我有一个返回布尔值的方法。反过来,我需要再次返回该函数的结果,因为我不能直接从前端调用该方法。这是我的代码:

# this uses bottle py framework and should return a value to the html front-end
@get('/create/additive/<name>')
def createAdditive(name):
    return pump.createAdditive(name)



 def createAdditive(self, name):
        additiveInsertQuery = """ INSERT INTO additives
                                  SET         name = '""" + name + """'"""
        try:
            self.cursor.execute(additiveInsertQuery)
            self.db.commit()
            return True
        except:
            self.db.rollback()
            return False

这会抛出异常:TypeError("'bool' object is not iterable",)

我根本没有收到此错误,因为我没有尝试“迭代”布尔值,只是返回它。

如果我返回一个字符串而不是 boolean 或 int,它会按预期工作。这可能是什么问题?

追溯:

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
    out = iter(out)
TypeError: 'bool' object is not iterable

【问题讨论】:

  • 请发布整个回溯。
  • 查看完整追溯编辑。

标签: python python-3.x bottle


【解决方案1】:

查看回溯:

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
    out = iter(out)
TypeError: 'bool' object is not iterable

您的代码不是迭代值,而是接收它的代码。

解决方案是:返回一个可迭代的。我建议您将 bool 转换为字符串 (str(False)) 或将其包含在一个元组中 ((False,))。

始终阅读回溯:它是正确的,而且很有帮助。

【讨论】:

  • String 方法有效,但非常令人沮丧,因为我必须在前端检查字符串而不是 bool。 Tulepe 不起作用,这是正确的语法吗? [[[ 返回 ((False,)) ]]] ?此外,具有路由的框架需要可迭代的数据类型是否很常见?如果它只是瓶 py 的东西,我会切换到 web py...
  • @DominicM 不,您不能在一个列表(或者实际上是三个列表)中放入一个语句。我认为这是一种常见的设计。如果您尝试将数据传递给 XmlHTTPRequest,那么我建议您返回 AJAX(使用 ajax 模块),并在客户端使用 ajax 解析库。
  • 我想我已经习惯了 php 能够简单地返回然后回显真/假。 ajax解析库是什么意思?我目前正在使用 javascript/jquery $.ajax 调用。
  • @DominicM 我的意思是一个 javascript 库,它将安全地将字符串转换为它所代表的 javascript 对象。
  • 这似乎有点矫枉过正,因为它只是其他调用的真/假或 json 数据。
猜你喜欢
  • 1970-01-01
  • 2020-06-20
  • 2021-08-08
  • 2019-02-02
  • 2020-06-17
  • 1970-01-01
  • 2019-04-12
  • 2018-02-01
  • 2016-02-18
相关资源
最近更新 更多