そのため、スキーマの検証に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' 型の何かで動作させることができないようです. ケルベロスで次のスキーマを設定しようとしました:
schema = {
'things': {
'type': 'dict',
'valueschema': {
'type': 'dict',
'foo': {'type': 'string'},
'bar': {'type': 'string'}
}
}
}
スキーマの定義が間違っているのでしょうか、それとも の現在の実装では不可能valueschema
ですか? を使用するリポジトリでいくつかのテストを見ましたが、それらは の型が int または stringvalueschema
である場所のみをテストしていました。valueschema