Używam validictory do sprawdzania poprawności dołączonych danych JSON i schematu. Dotychczasowa praca.Walidacja schematu JSON z arbitralnymi kluczami
Jednak słownik danych może mieć arbitralne klucze strunowe (inne niż "bp", ale). Klucz "bp" w tym schemacie jest zakodowany na stałe ... może być ciągiem z podanej listy (wyliczenie ciągu znaków). Jak dodać tutaj definicję enum dla "pierwszego poziomu" dyktatury.
import json
import validictory
data = {'bp': [{'category': 'bp',
'created': '2013-03-08T09:14:48.148000',
'day': '2013-03-11T00:00:00',
'id': 'dc049c0e-d19a-4e3e-93ea-66438a239712',
'unit': 'mmHg',
'value': 147.0,
'value2': 43.0}]}
schema = {
"type":"object",
"properties":{
"bp": {
"type":"array",
"required":False,
"items":
{
"type":"object",
"required":False,
"properties":{
"category": {
"type":"string",
"default": "bp",
"required":False
},
"created": {
"type":"string",
"default": "2013-03-08T09:14:48.148000",
"required":False
},
"day": {
"type":"string",
"default": "2013-03-11T00:00:00",
"required":False
},
"id": {
"type":"string",
"default": "dc049c0e-d19a-4e3e-93ea-66438a239712",
"required":False
},
"unit": {
"type":"string",
"default": "mmHg",
"required":False
},
"value2": {
"type":"number",
"default":43,
"required":False
},
"value": {
"type":"number",
"default":147,
"required":False
}
}
}
}
}
}
validictory.validate(data,schema)
Czy możesz pokazać nam, jak odtworzyć problem? Teraz nie widzę żadnych. – jsalonen
@jsalonen: Problem polega na tym, że OP chce sprawdzić poprawność danych wejściowych, jeśli klucz najwyższego poziomu jest nieco inny niż "bp". Myślę, że opis problemu jest wystarczająco jasny i ktoś z doświadczeniem JSON-schema powinien być w stanie Ci pomóc. –
Ach tak. Dzięki. – jsalonen