【发布时间】:2018-11-17 00:55:00
【问题描述】:
我正在尝试在 flask-python 中创建一个简单的 post api,但出现此错误:
TypeError: list object is not an iterator
但是当我修改我的代码时似乎很好,可能是什么问题。
我的功能特别有问题:
def post(self,name):
#return {'message': name}
item = next(filter(lambda x: x['name'] == name, items), None)
if item:
return {'message':"An item with name '{}' already exixts. ".format(name)},400
data = request.get_json()
item = {'name': name, 'price':data['price']}
items.append(item)
return item, 201
当我尝试在 postman 上发布内容时,我收到了 logcaterror:
[2018-06-07 10:41:02,849] ERROR in app: Exception on /item/test [POST]
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Python27\lib\site-packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Python27\lib\site-packages\flask_restful\__init__.py", line 480, in wrapper
resp = resource(*args, **kwargs)
File "C:\Python27\lib\site-packages\flask\views.py", line 84, in view
return self.dispatch_request(*args, **kwargs)
File "C:\Python27\lib\site-packages\flask_restful\__init__.py", line 595, in dispatch_request
resp = meth(*args, **kwargs)
File "G:\flask_workspace\MealBookingApp\MealBookingApp\MealBookingApp\views.py", line 30, in post
item = next(filter(lambda x: x['name'] == name, items), None)
TypeError: list object is not an iterator
127.0.0.1 - - [07/Jun/2018 10:41:02] "POST /item/test HTTP/1.1" 500 -
注意:
第 30 行,是下面一行:
item = next(filter(lambda x: x['name'] == name, items), None)
【问题讨论】:
-
您似乎在 Python 2 上运行 Python 3 代码。