Проверка тела запроса по упрощённому контракту
Контракт задан словарём: {поле: {"type": ..., "required": bool, "nullable": bool}}. Типы: "string", "integer", "number", "boolean".
Напишите validate(payload, contract), которая возвращает список ошибок вида "поле: причина".
missing— обязательного поля нет вpayload;null— значениеNone, аnullableложно (при истинномnullableNoneдопустим);type— тип не совпадает.integer— толькоint;number—intилиfloat;boolean— толькоbool;string— толькоstr. ЗначенияTrue/Falseне считаются ниinteger, ниnumber;unknown— поля нет в контракте.
Необязательное отсутствующее поле — не ошибка. Верните список, отсортированный по возрастанию. Если ошибок нет — пустой список.
заготовка решения
def validate(payload, contract):
# ваш код
return None