所以我使用 Cerberus 进行模式验证,但我遇到了一个特殊的问题,即验证一个密钥未知的字典的子字典。
所以说我有以下文件:
dict = {
'things': {
'0463': {
'foo': 'blah',
'bar': 'bleep'
},
'0464': {
'foo': 'x',
'bar': 'y'
},
'another_random_id': {
'foo': 'blah',
'bar': 'bleep'
}
}
所以我想验证子词典是否具有特定的结构(foo
和bar
作为键),但我无法在不提前知道键的情况下找到一种方法来验证它(在我的情况下是随机 id。我想这是很好地使用了 valueschema 但我似乎无法让 valueschema 与“dict”类型的东西一起工作。我试图在 cerberus 中设置以下模式:
schema = {
'things': {
'type': 'dict',
'valueschema': {
'type': 'dict',
'foo': {'type': 'string'},
'bar': {'type': 'string'}
}
}
}
我是否错误地定义了我的架构,或者这对于当前的valueschema
. 我在存储库中看到了一些使用 的测试valueschema
,但它们只测试类型valueschema
是 int 或 string 的情况。