python-3.x - 如何在列表的解析参数中解析列表(字符串)而不是列表(字符)?

标签 python-3.x list flask flask-restful

我在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/

相关文章:

python - 使用arrow python将人性化时间转换为UTC时间

python - 内隐微分 Sympy

python - 在 Python 2.7 中从某个元素拆分列表并将项目值放入另一个列表

python - 根据列表创建给定字符串的所有可能组合

python - 从 flask_ldap3_login 的 current_user.get_id() 中提取 uid 的正确方法?

python - 使用 boolean 值的 If 语句的语法

python - 如何让 Discord 机器人显示 "Bot is typing ..."状态?

list - 使用较长列表中的任意两个元素创建列表 DrRacket

python - 我怎样才能在 jinja2 模板中获取所有必需的变量和属性来呈现

python - python Flask 形式的所有链接的行为都类似于提交