我想知道我是否是唯一一个在与这样的问题作斗争的人
以dict为例:
data = {'totalSize': 3000, 'freq': 2400,
'distribution':
{'ram1': {'size': 200, 'status': 'OK'},
'ram2': {'size': 100, 'status': 'OK'}
}
}
请不要认为ram1/2是无法预先知道的动态键
问题,我的api.model应该是什么样子?我有:
wild = {"*": fields.Wildcard(fields.String())}
hw_memory = api.model('Memory', {
'totalSize': fields.Integer(description='total memory size in MB',
example=1024),
'freq': fields.Integer(description='Speed of ram in mhz', example=800),
'distribution': fields.Nested(wild),
})
它正在工作,但是它不验证“分发”下的任何内容,换句话说,它的工作方式类似于通配符,任何内容都将被接受。 有没有一种方法可以使用通配符动态键来嵌套dict
首先,
Wildcard
类型的字段接受dict值的定义,而不是键的定义,即fields.Wildcard(fields.String())
验证dict值只能是字符串类型(在您的情况下,需要提供分布的定义)第二个错误是将
distribution
字段定义为Nested
对象,而不是使用Wilcard
以下代码应用于验证目的:
不幸的是,它不适用于编组。 下一个代码应该适用于封送,但不适用于验证输入有效负载:
相关问题 更多 >
编程相关推荐