Я бы хотел проверить JSON объекты, которые были проанализированы в Python словарях, например:
# example with 2 elements
{
'coordinates': [-20.3, 30.6]
}
# example with 3 elements
{
'coordinates': [-20.3, 30.6, 0]
}
До сих пор я мог определить следующую схему:
schema = {
'coordinates': {
'required': True,
'type': 'list',
'minlength': 2,
'maxlength': 3,
'schema': {
'type': 'float',
},
}
}
Я также хотел бы проверить следующие ограничения:
- первый элемент значения поля
coordinates
должен быть в диапазоне от -30,0 до 10,0 - второй элемент должен быть между -10,0 и 50,0
Но я не смог придумать что-то полезное. У кого-нибудь есть предложения, как этого добиться?
Обновление: На основании принятого ответа схема становится следующей
schema = {
'coordinates': {
'required': True,
'type': 'list',
"oneof_items": (
({"min": -30.0, "max": 10.0}, {"min": -10.0, "max": 50.0}),
({"min": -30.0, "max": 10.0}, {"min": -10.0, "max": 50.0}, {}),
),
}
}
docs: https://docs.python-cerberus.org/en/stable/validation-rules.html#of -правили-typesaver