Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用flask_restx RequestParser从查询参数获取列表列表_Python_Rest_Flask_Query Parameters_Flask Restplus - Fatal编程技术网

Python 使用flask_restx RequestParser从查询参数获取列表列表

Python 使用flask_restx RequestParser从查询参数获取列表列表,python,rest,flask,query-parameters,flask-restplus,Python,Rest,Flask,Query Parameters,Flask Restplus,我正在使用Flask和Flask RESTX模块创建Python服务器。我想定义路线e。G对于此URL: /users?sort=age,asc&sort=name,desc 因此,当我读取sort查询参数时,我将有一个对列表,其中每对都是(属性、顺序)其中顺序是asc或desc。我有以下代码: from flask_restx import Resource from flask import request from flask_restx import reqparse par

我正在使用Flask和Flask RESTX模块创建Python服务器。我想定义路线e。G对于此URL:

/users?sort=age,asc&sort=name,desc
因此,当我读取
sort
查询参数时,我将有一个对列表,其中每对都是
(属性、顺序)
其中顺序是
asc
desc
。我有以下代码:

from flask_restx import Resource
from flask import request
from flask_restx import reqparse

parser = reqparse.RequestParser()
parser.add_argument("sort", type=str)


@api.route("/users")
class Users(Resource):

    @api.marshal_list_with(...)
    @api.expect(parser)
    def get(self):
        print(request.args.getlist("sort"))
代码打印
['age,asc','name,desc']
,这很好,但是我必须用逗号手动分割值,并检查每个项目中是否只有2个值(例如
age
asc


有没有更好的方法来处理这个问题?

为RequestParser添加
操作
参数和值:
'split'
,以获得一个拆分的值列表

并从解析参数字典中获取值

你的例子给出了我的评论:

from flask_restx import Resource
from flask import request
from flask_restx import reqparse

parser = reqparse.RequestParser()
parser.add_argument("sort", type=str, action="split")


@api.route("/users")
class Users(Resource):

    @api.marshal_list_with(...)
    @api.expect(parser)
    def get(self):
        print(parser.parse_args()["sort"])
结果应该如下所示:

[['age', 'asc'], ['name', 'desc']]