使用flask-restplus时,如何编组一个简单列表(无属性)的json?

问题描述 投票:0回答:1

我正在使用flask-restplus开发API。我的一个端点返回一个对象列表,例如

[
  {
    "id": "1342",
    "index": "meta",
    "score": 3.0630198
  },
  {
    "id": "1645",
    "index": "meta",
    "score": 3.0630198
  },
  {
    "id": "2345",
    "index": "meta",
    "score": 3.0630198
  }
]

现在我正在尝试使用字段来开发模型,以便例如通过get可以将其封送

model = namespace.model('MyModel', {
    "some_attribute":fields.List(fields.Nested(some_nested_object))
})

@namespace.route('')
class FlashcardAutocompleteAPI(Resource):
...
   @namespace.marshal_with(model,code=200)
   def get(self):
      ...

上面的代码当然可以,但是不能整理正确的结构。

是否有任何方法不声明“ some_attribute”部分,以使该模型将封送如上所述的json结构?试试这个:

 model = namespace.model('MyModel', {
    fields.List(fields.Nested(some_nested_object))
})

我收到:

  TypeError: cannot convert dictionary update sequence element #0 to a 
  sequence
python-3.x list marshalling flask-restplus
1个回答
0
投票

[不确定是否有帮助,我遇到了类似的问题,但使用post方法而不是get。在这种情况下,我在方法之前有expect装饰器

@ns.expect(model, validate=True)

并且如果我只用括号将模型包裹起来,就可以了,就像这样:

@ns.expect([model] validate=True)

https://github.com/noirbizarre/flask-restplus/issues/230中指出了解决方案>

我知道这只是部分答案,但也许可以使您对此问题有所了解。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.