如何使列表中的列表分析(字符串)不列表(char)列表参数



我在烧瓶中使用flask_restful

我的代码喜欢:

from flask_restful import Resource, reqparse
apilink_parser = reqparse.RequestParser()
apilink_parser.add_argument('provider_id', type=int,required=True)
apilink_parser.add_argument('name', type=str, required=True)
apilink_parser.add_argument('func_id', type=int)
apilink_parser.add_argument('method', type=str)
apilink_parser.add_argument('url', type=str)
apilink_parser.add_argument('parameter',type=list)
apilink_parser.add_argument("expectreturn", type=list)

@marshal_with(apilink_fields)
def post(self):
    args = apilink_parser.parse_args()
    print(args)
    # user owns the task
    task = APILink.create(**args)
    return task, 201

我的JSON帖子数据如下:

{ 
"name":"riskiqwhois",
"provider_id":1,
"func_id":1,
"url":"myurl",
"parameter":["query"],  //******//
"expectreturn":[],
"method":"post"
 }

但是当我打印arrgs时,结果是:

 {
 'provider_id': 1, 
 'name': 'riskiqwhois', 
 'func_id': 1, 
 'method': 'post', 
 'url': 'myurl', 
 'parameter': ['q', 'u', 'e', 'r', 'y'], //******//
 'expectreturn': None
  }

我想要您可以看到我想要参数是字符串列表,它只是一个名为" QUERY"的元素,但是数据库中的真实参数是['Q','u','e',e','r','y'],如何使参数是字符串列表而不是字符的列表?如何确保数据列表(字符串(?

好吧,您忘记了设置action="append",您应该从type = list type = str更改。如果没有,您仍然会得到[['q','u','e','r','y']]的结果。

...
apilink_parser.add_argument('parameter',type=str, action='append')
apilink_parser.add_argument("expectreturn", type=str, action='append')

您可以通过在请求解析器中添加 action =" append" 来解决此问题如下

apilink_parser.add_argument('parameter',type=str,action="append")
apilink_parser.add_argument("expectreturn", type=list,action="append")

这将返回您以下输出

 {
 'provider_id': 1, 
 'name': 'riskiqwhois', 
 'func_id': 1, 
 'method': 'post', 
 'url': 'myurl', 
 'parameter': ['query'],
 'expectreturn': None
  }

最新更新