首页 > 解决方案 > CherryPy 编码:布尔对象不可迭代

问题描述


您好,我正在使用 CherryPy 托管应用程序的 gui,该应用程序从 qualtrics 获取 json 文件并将它们放入 mysql 服务器中。

该代码似乎适用于大多数调查,但对于某些调查,我收到以下错误:

Traceback (most recent call last):
File "C:\Users\jam66\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cherrypy\_cprequest.py", line 627, in respond    
    self._do_respond(path_info)

File "C:\Users\jam66\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cherrypy\_cprequest.py", line 686, in _do_respond
    response.body = self.handler()

File "C:\Users\jam66\AppData\Local\Programs\Python\Python37-32\lib\site- packages\cherrypy\lib\encoding.py", line 264, 
    in __call__ct.params['charset'] = self.find_acceptable_charset()

File "C:\Users\jam66\AppData\Local\Programs\Python\Python37-32\lib\site- packages\cherrypy\lib\encoding.py", line 173, in find_acceptable_charset
     if encoder(self.default_encoding):

File "C:\Users\jam66\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cherrypy\lib\encoding.py", line 114, in encode_string 
     for chunk in self.body:

TypeError: 'bool' object is not iterable

感谢您对开始了解此问题的任何帮助

标签: cherrypyqualtrics

解决方案


我的猜测是您的一些公开方法正在返回一个布尔值。您必须返回一个字符串或一个可迭代的。除非您使用 json 工具,否则在这种情况下,字典到字符串将由该工具处理。

作为调试它的一种方式,只需打印或记录将返回的值,使用 type 函数验证类型。


推荐阅读