Tôi đang sử dụng tính hợp lệ để xác thực dữ liệu JSON và lược đồ được đính kèm. Làm việc cho đến thời điểm này.Xác thực lược đồ JSON với các khóa tùy ý
Tuy nhiên, từ điển dữ liệu có thể có các phím chuỗi tùy ý (những người khác không phải là 'bp' nhưng). Khóa 'bp' trong lược đồ ở đây được mã hóa cứng ... nó có thể là một chuỗi từ một danh sách đã cho (chuỗi của chuỗi). Làm thế nào để thêm định nghĩa enum ở đây cho "cấp độ đầu tiên" của 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)
Bạn có thể chỉ cho chúng tôi cách tạo lại sự cố không? Tôi không thấy gì ngay bây giờ. – jsalonen
@jsalonen: vấn đề là OP muốn xác thực đầu vào nếu khóa cấp cao nhất là khác với 'bp'. Tôi nghĩ rằng mô tả vấn đề là đủ rõ ràng và một người có trải nghiệm lược đồ JSON sẽ có thể trợ giúp. –
À phải rồi. Cảm ơn. – jsalonen