Sto utilizzando validictory per la convalida dei dati e dello schema JSON allegati. Funzionando finora.Convalida schema JSON con chiavi arbitrarie
Tuttavia il dizionario dei dati può avere chiavi stringa arbitrarie (diverse da "bp" ma). La chiave 'bp' nello schema qui è hard-coded ... può essere una stringa da una lista data (enum di stringa). Come aggiungo qui la definizione enum per il "primo livello" del dict.
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)
Puoi mostrarci come riprodurre il problema? Non vedo niente adesso. – jsalonen
@jsalonen: il problema è che l'OP vuole convalidare l'input se la chiave di primo livello è qualcosa di diverso da 'bp'. Penso che la descrizione del problema sia abbastanza chiara e qualcuno con esperienza nello schema JSON dovrebbe essere in grado di aiutare. –
Ah, giusto. Grazie. – jsalonen