Вступить в клуб →
сложнаяpythonКонтракты API: OpenAPI, ошибки и маппинг данных

Маппинг карточки клиента из старой АБС в новый контракт

Старая система отдаёт запись:

{"FIO": "Иванова Анна Сергеевна", "BIRTH_DT": "05.03.1990", "PHONE": "8 (912) 345-67-89", "STATUS": "A"}

Напишите map_client(legacy), которая возвращает словарь нового контракта с ключами lastName, firstName, middleName, birthDate, phone, status.

  • FIO делится по пробельным символам: из 3 частей — фамилия, имя, отчество; из 2 — фамилия и имя, middleName = None. Иное число частей — ValueError.
  • BIRTH_DT в формате ДД.ММ.ГГГГ → ГГГГ-ММ-ДД. Несуществующая дата — ValueError.
  • PHONE: оставить только цифры. 11 цифр, начинающихся с 8 или 7, или 10 цифр → "+7" и последние 10 цифр. Иначе — ValueError.
  • STATUS: A → "active", B → "blocked", C → "closed", иное — ValueError.

заготовка решения

def map_client(legacy):
    # ваш код
    return None

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела