我正在使用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
[不确定是否有帮助,我遇到了类似的问题,但使用post
方法而不是get
。在这种情况下,我在方法之前有expect
装饰器
@ns.expect(model, validate=True)
并且如果我只用括号将模型包裹起来,就可以了,就像这样:
@ns.expect([model] validate=True)
https://github.com/noirbizarre/flask-restplus/issues/230中指出了解决方案>
我知道这只是部分答案,但也许可以使您对此问题有所了解。祝你好运!