Flask 在restful/plus中使用变量键的编组字典

Flask 在restful/plus中使用变量键的编组字典,flask,marshalling,flask-restful,flask-restplus,Flask,Marshalling,Flask Restful,Flask Restplus,我正在使用flask restful构建一个API。我还使用flask resfulplus生成了招摇过市的文档。我想返回一个项目字典,其中键将根据项目的不同而变化。我的模型如下所示: item = api.model('Item',{ 'item':fields.Integer()}) <- This is wrong ItemModel = api.model('ItemsList', { '_header': fields.Nested(_

我正在使用flask restful构建一个API。我还使用flask resfulplus生成了招摇过市的文档。我想返回一个项目字典,其中键将根据项目的不同而变化。我的模型如下所示:

item = api.model('Item',{
            'item':fields.Integer()}) <- This is wrong


ItemModel = api.model('ItemsList', {
        '_header': fields.Nested(_header),
        'items':fields.Nested(item)
})
item=api.model('item'{

“项”:fields.Integer()})有时您有自己的自定义格式需求。您可以对fields.Raw类进行子类化,并实现format函数。当属性存储多条信息时,这尤其有用。e、 g.一个位字段,其各个位表示不同的值。可以使用字段将单个属性多路传输到多个输出值

如果不知道要解组的字段的名称,可以使用通配符

>>> from flask_restplus import fields, marshal
>>> import json
>>>
>>> wild = fields.Wildcard(fields.String)
>>> wildcard_fields = {'*': wild}
>>> data = {'John': 12, 'bob': 42, 'Jane': '68'}
>>> json.dumps(marshal(data, wildcard_fields))
>>> '{"Jane": "68", "bob": "42", "John": "12"}'
您为通配符指定的名称作为一个真实的glob,如下所示

>>> from flask_restplus import fields, marshal
>>> import json
>>>
>>> wild = fields.Wildcard(fields.String)
>>> wildcard_fields = {'j*': wild}
>>> data = {'John': 12, 'bob': 42, 'Jane': '68'}
>>> json.dumps(marshal(data, wildcard_fields))
>>> '{"Jane": "68", "John": "12"}'

注意
在模型之外定义通配符是很重要的(即,不能这样使用:res_fields={'':fields.Wildcard(fields.String)})*,因为它必须是有状态的,才能跟踪它已经处理过的字段。

您能提供一个更完整的示例吗?您有一个整数DB字段,但希望该字段在序列化时生成嵌套字典?为什么?谢谢你的评论。检查所需的输出。项目1:5、项目2:2等。。。。如何使每个项的键不同?您必须编写一个自定义序列化程序。Flask Restful不知道它正在封送的对象之外的数据库。我有没有办法手动覆盖它在文档中生成的内容,并自行封送输出?您好!你找到解决办法了吗?
>>> from flask_restplus import fields, marshal
>>> import json
>>>
>>> wild = fields.Wildcard(fields.String)
>>> wildcard_fields = {'j*': wild}
>>> data = {'John': 12, 'bob': 42, 'Jane': '68'}
>>> json.dumps(marshal(data, wildcard_fields))
>>> '{"Jane": "68", "John": "12"}'