Flask Restful 接受 post 请求中的列表
Flask Restful accept a list in a post request
我正在为我的服务器使用 Flask Restful API 并向服务器发布一个字典,其中一个值是字典的列表。
parser.add_argument('products_in_basket', type=list)
def post(self, user_id):
args = parser.parse_args()
print request.data
print args['my_list']
我遇到的问题是 args['my_list'] 只返回列表的第一个元素。而我可以看到来自 request.data.
的所有列表
这是request.data
{"address_id":1,"my_list":[{"size":12,"colour":"red","id":34219,"quantity":1},{"size":10,"colour":"red","id":12219,"quantity":2},{"size":8,"colour":"red","id":5214,"quantity":3}],"payment_card_id":1}
这是参数['my_list']
[u'colour', u'quantity', u'id', u'size']
我哪里错了?
尝试像这样访问数据:
for product in args.my_list:
size = product.get('size')
etc....
这将允许您遍历 my_list
列表中的所有 dict
对象。
您的解析器 add_argument
选项是什么? products_in_basket
是请求数据的实际键吗?或者您是否试图提供任意名称 and/or 重命名字典?
看看
Multiple Values & Lists 来自 请求解析 文档。
您可能想要做这样的事情...
parser = reqparse.RequestParser()
parser.add_argument('my_list', action='append')
您可以在add_argument函数中使用location参数。这将指定您正在使用 json 并将在列表中附加其他元素。
parser = reqparse.RequestParser()
parser.add_argument('my_list', location='json')
我正在为我的服务器使用 Flask Restful API 并向服务器发布一个字典,其中一个值是字典的列表。
parser.add_argument('products_in_basket', type=list)
def post(self, user_id):
args = parser.parse_args()
print request.data
print args['my_list']
我遇到的问题是 args['my_list'] 只返回列表的第一个元素。而我可以看到来自 request.data.
的所有列表这是request.data
{"address_id":1,"my_list":[{"size":12,"colour":"red","id":34219,"quantity":1},{"size":10,"colour":"red","id":12219,"quantity":2},{"size":8,"colour":"red","id":5214,"quantity":3}],"payment_card_id":1}
这是参数['my_list']
[u'colour', u'quantity', u'id', u'size']
我哪里错了?
尝试像这样访问数据:
for product in args.my_list:
size = product.get('size')
etc....
这将允许您遍历 my_list
列表中的所有 dict
对象。
您的解析器 add_argument
选项是什么? products_in_basket
是请求数据的实际键吗?或者您是否试图提供任意名称 and/or 重命名字典?
看看 Multiple Values & Lists 来自 请求解析 文档。
您可能想要做这样的事情...
parser = reqparse.RequestParser()
parser.add_argument('my_list', action='append')
您可以在add_argument函数中使用location参数。这将指定您正在使用 json 并将在列表中附加其他元素。
parser = reqparse.RequestParser()
parser.add_argument('my_list', location='json')