我在flask中使用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"
}
但是当我打印参数时,结果是:
{
'provider_id': 1,
'name': 'riskiqwhois',
'func_id': 1,
'method': 'post',
'url': 'myurl',
'parameter': ['q', 'u', 'e', 'r', 'y'], //******//
'expectreturn': None
}
我想要 你可以看到我想要的参数是字符串列表,它只是一个名为“query”的元素,但翻译到数据库中的真正参数是 ['q', 'u', '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')
关于python-3.x - 如何在列表的解析参数中解析列表(字符串)而不是列表(字符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864939/