在Python 3 Restful API中使用POSTMAN在POST方法中获取数组键

在Python 3 Restful API中使用POSTMAN在POST方法中获取数组键,python,python-3.x,api,flask,flask-restful,Python,Python 3.x,Api,Flask,Flask Restful,如何在FlaskAPI中使用parser=reqparse.RequestParser()获取postman中数组的值 我收到一个错误,上面写着:“非类型”对象不可下标 这是我的代码: class CreateUser(Resource): def post(self): try: conn = None parser = reqparse.RequestParser() parser.add_argume

如何在FlaskAPI中使用parser=reqparse.RequestParser()获取postman中数组的值

我收到一个错误,上面写着:“非类型”对象不可下标

这是我的代码:

class CreateUser(Resource):

    def post(self):
        try: 
          conn = None
          parser = reqparse.RequestParser()
          parser.add_argument('username', type = str)

          args = parser.parse_args()
          name = args['username'][0]

          return name
        except Exception as e:
            x = str(e)
            x.replace('\n', '')
            return {'status' : 'failed', 'message' : str(x)}
        finally:
            if conn is not None:
                conn.close()
我的名字=args['username'][0]出现了错误,我也试着把它改成name=args[0]['username'],但还是出现了错误,当我只是把它改成like name=args['username']时,邮递员回复为空。请帮帮我。

用这个

def post(self):
try: 
  conn = None
  parser = reqparse.RequestParser()
  parser.add_argument('username[0]', type = str)
  parser.add_argument('username[1]', type = str)

  args = parser.parse_args()
  name = args['username[0]']

  return name
except Exception as e:
    x = str(e)
    x.replace('\n', '')
    return {'status' : 'failed', 'message' : str(x)}
finally:
    if conn is not None:
        conn.close()
编辑多个参数 表单数据应该是这样的

username: "user1"
username: "user2"
username: "user3"
是的,您可以使用同一个键传递多个值

def post(self):
try: 
  conn = None
  parser = reqparse.RequestParser()
  parser.add_argument('username', type = str, action='append')
  args = parser.parse_args()
  name = args['username']
  print(name) # ['user1', 'user2','user3'] you can traverse over this list

args
None
可能是因为
username
没有
str
。您是否尝试过
解析器。添加参数('username',type=list,location='json')
?或者
parser.add_参数('username',action='append')
?我也尝试过,但仍然会在上面的postman中显示错误。请帮助我确定您已经编辑了答案,我将尝试type=list,位置'json'仍然有错误,那么代码的修订版呢?你能给出一个能在数组中获取这些密钥的代码吗?如果他不知道他将有多少用户名参数来请求呢?哦,先生,谢谢:)还有一件事,我如何动态生成它?我可以在循环语句中使用它吗?获取json请求的长度并使其如下?json_dict=request.get_json(force=True,silent=True)for i in len(json_dict):parser=reqparse.RequestParser()parser.add_参数('username[i]',type=str)name=args['username[i]],我怎么能这样呢?感谢您的帮助:)然后您应该将json正文作为请求发送,而不是表单数据。json正文可以是{“username”:[“user1”、“user2”、“user3”]},并且在post方法中读取json数组并遍历iti。在原始json中发送它不会有任何问题。我需要表单类型,因为它是使用kotlin通过api发送数据时制作格式的方法。你能动态地做吗?如果他们给我寄了成千上万的呢?如何在循环语句中应用它?再次编辑时忘记在parser.add_参数中添加action='append'