Разработка модуля валидации и нормализации входных данных на языке программирования Python
СОДЕРЖАНИЕ:
Введение (актуальность)
Введение (примеры проблемы)
Введение (объект, предмет, цель, задачи)
Введение (методы, информационная база, структура)
Глава 1, параграф 1.1 (теория)
Глава 1, параграф 1.2 (проблематика)
Глава 1, параграф 1.3 (обзор подходов)
Глава 2, параграф 2.1 (анализ требований)
Глава 2, параграф 2.2 (архитектура)
Назначение компонентов
Глава 2, параграф 2.3 (реализация правил)
Глава 2, параграф 2.4 (тестирование)
Нормативная база
Теоретическая база
Ключевые понятия по теме
73.76K

Presentation

1. Разработка модуля валидации и нормализации входных данных на языке программирования Python

2. СОДЕРЖАНИЕ:

Введение .................................................................................................
Глава 1. Теоретические основы обработки входных данных
1.1. Понятие валидации и нормализации данных ..............................
1.2. Проблема неоднородности входных данных ...............................
1.3. Обзор существующих подходов и инструментов .........................
Глава 2. Практическая реализация модуля валидации
2.1. Анализ требований и постановка задачи .....................................
2.2. Архитектура разработанного модуля ...........................................
2.3. Реализация правил валидации и нормализации ..........................
2.4. Тестирование и результаты работы ..............................................
Заключение ............................................................................................
Список использованных источников ..................................................
Приложения ..........................................................................................

3. Введение (актуальность)

Актуальность исследования.
В современных информационных системах данные поступают из множества
источников:
веб-формы, CSV-файлы, API-запросы, базы данных. Пользователи вводят
информацию
в произвольном формате: даты могут быть указаны как «15.03.2026», «2026-03-15»
или «15/03/2026»; номера телефонов — с разными разделителями; адреса — в
произвольном порядке. Это создаёт проблему для хранения, обработки и анализа
данных.
Отсутствие единого формата приводит к ошибкам при загрузке в базы данных,
затрудняет поиск и статистическую обработку. Разработка модуля, способного
автоматически проверять и приводить данные к единому виду, является актуальной
задачей для любого IT-специалиста.

4. Введение (примеры проблемы)

Конкретные примеры:
● Дата 01/02/2026 может быть прочитана как как 1 февраля или 2 января.
● Номер телефона 8(912)345-67-89 и +7 912 345 67 89 - разные представления
одной сущности.
● Адрес Мосвка, Тверская, 7 и г. Москва, ул. Тверская, д. 7 - разная структура.
Вывод: Необходима автоматическая валидация и нормализация данных.

5. Введение (объект, предмет, цель, задачи)

Объект исследования: процесс обработки и приведения к единому формату
входных данных в информационных системах.
Предмет исследования: методы и алгоритмы валидации и нормализации строковых
данных (дата, телефон, адрес).
Цель работы: разработать модуль на языке Python для автоматической проверки
и нормализации входных данных с возможностью расширения набора правил.
Задачи:
1. Охарактеризовать понятие валидации и нормализации данных, выявить
основные проблемы неоднородности.
2. Раскрыть требования к модулю обработки данных, определить состав правил.
3. Разработать архитектуру модуля и реализовать его на языке Python.
4. Провести тестирование модуля на тестовых наборах данных и
проанализировать результаты.

6. Введение (методы, информационная база, структура)

Методы исследования: анализ научной и технической литературы,
моделирование, объектно-ориентированное проектирование, тестирование.
Информационная база исследования: официальная документация языка Python,
стандарты форматирования дат (ISO 8601), форматов телефонных номеров,
учебные пособия по разработке программного обеспечения.
Структура работы: курсовая работа состоит из введения, двух глав,
заключения, списка использованных источников и приложений.
Первая глава посвящена теоретическим аспектам валидации данных.
Вторая глава содержит практическую реализацию модуля.

7. Глава 1, параграф 1.1 (теория)

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБРАБОТКИ ВХОДНЫХ ДАННЫХ
1.1. Понятие валидации и нормализации данных
Валидация — это процесс проверки данных на соответствие заданным правилам
и форматам. Цель валидации — выявить некорректные или ошибочные данные
на этапе их поступления в систему.
Нормализация — это процесс приведения данных к единому стандартному виду.
Например, приведение всех телефонных номеров к формату +7XXXXXXXXXX
или всех дат к формату ГГГГ-ММ-ДД.
Совместное применение валидации и нормализации позволяет:
- обеспечить целостность данных в базе;
- упростить поиск и фильтрацию;
- подготовить данные для машинного анализа и отчётов.

8. Глава 1, параграф 1.2 (проблематика)

1.2. Проблема неоднородности входных данных
На практике данные редко поступают в идеальном формате. Основные источники
неоднородности:
- Ручной ввод пользователем (опечатки, разные стили записи).
- Разные региональные стандарты (например, дата: ДД.ММ.ГГГГ в РФ,
ММ/ДД/ГГГГ в США).
- Копирование из разных источников (веб-страницы, Excel, документы).
- Отсутствие маски ввода в формах.
Особенно остро эта проблема стоит при интеграции нескольких систем,
когда каждая использует свой внутренний формат данных.

9. Глава 1, параграф 1.3 (обзор подходов)

1.3. Обзор существующих подходов и инструментов
Существует несколько подходов к решению проблемы:
1. Использование регулярных выражений — гибкий, но трудоёмкий метод.
2. Использование готовых библиотек (например, dateutil для дат,
phonenumbers для телефонов).
3. Разработка собственных модулей с чёткой архитектурой правил.
В данной работе выбран третий подход, так как он позволяет:
- контролировать логику проверки;
- легко добавлять новые правила без изменения основного кода;
- интегрировать модуль в любые проекты на Python;
- работать без внешних зависимостей (только стандартная библиотека).

10. Глава 2, параграф 2.1 (анализ требований)

ГЛАВА 2. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ МОДУЛЯ ВАЛИДАЦИИ
2.1. Анализ требований и постановка задачи
На основе анализа предметной области были сформулированы следующие
требования к разрабатываемому модулю:
1. Поддержка трёх типов данных: дата, телефон, адрес.
2. Возможность проверки (валидации) каждого поля по заданным правилам.
3. Возможность приведения (нормализации) корректных данных к единому формату.
4. Формирование отчёта с указанием строк с ошибками, их описанием и
преобразованными данными.
5. Лёгкость расширения — добавление нового правила не должно требовать
изменения существующего кода.

11. Глава 2, параграф 2.2 (архитектура)

2.2. Архитектура разработанного модуля
Модуль построен по принципу разделения ответственности:
┌─────────────────┐
│
│
models.py
│────
┌─────────────────┐
┌─────────────────┐
│
rules.py │────
│ (правила для │
│ даты, телефона, │
│
адреса)
│
│ validator.py
│
│ (главный класс │
│ DataNormalizer) │
│ (структуры │
│ данных)
│
│
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
│
│
▼
▼
▼
┌───────────────────────────────────────────────── main.py (точка входа) │
│ - задаёт исходные данные
│
│ - создаёт объект DataNormalizer
│
│ - выводит отчёт
──────────────────────────────────┘

12. Назначение компонентов

● models.ру - определяет классы ValidationError и ValidationReport, которые
используются для хранения информации об ошибках и итоговых.ру - содержит
классы DateFormatRule, PhoneRule, AdressRule. Каждый класс реализует два
метода: validate (проверка) и normalize (приведение к стандарту).
● validator.ру - словарь правил, обрабатывает каждую строку и формирует
отчёт.
● main.ру - демонстрационная программа, показывающая работу модуля на
тестовых данных.

13. Глава 2, параграф 2.3 (реализация правил)

2.3. Реализация правил валидации и нормализации
Каждое правило представляет собой класс с двумя методами:
1. validate(value) — возврактно;
иначе — описание ошибки.
2. normalize(value) — преобразует корректное значение к стандартному виду.
Правило для даты:
- принимает форматы: ДД.ММ.ГГГ-ММ-ДД, ДД/ММ/ГГГГ;
- проверяет возможность разбора строки через datetime.strptime;
- нормализует в единый формат ГГГД.
Правило для телефона:
- удаляет все символы, кроме цифр;
- проверяет, что длина равна 10 или 11 цифр;
- нормализует: добавляет «+7» к у или заменяет
лишнюю первую цифру «8» на «+7».
Правило для адреса:
- проверяет, что строка не пустая и длиннее 5 символов;
- выделяет город по ключевым словам («г.», «ул.», «д.»);
- возвращает словарь с полями full, city, street, house.

14. Глава 2, параграф 2.4 (тестирование)

2.4. Тестирование и результаты работы
Для проверки использовался набор из четырёх записей:
1. { date: '15.03.2026', phone: '+7 (912) 345-67-89', address: 'г. Москва, ул. Тверская, д. 7' }
2. { date: 'неправильная дата', phone: '12345', address: 'г. Москва, ул. Тверская, д. 7' }
3. { date: '2026-03-15', phone: '89123456789', address: 'Москва, Тверская, 7' }
4. { date: '15/03/2024', phone: '+7 912 345-67-89', address: 'г. Санкт-Петербург, Невский пр., д. 1' }
Результаты:
- Успешно обработано: 2 строки (50%).
- Ошибки:
- строка 2: неверный формат даты, слишком короткий телефон;
- строка 3: адрес без указания города/улицы/дома (но валиден);
- Нормализованные данные:
- даты приведены к виду ГГГГ-ММ-ДД;
- телефоны к формату +7XXXXXXXXXX;
- адреса разбиты на структурные компоненты.

15. Нормативная база

НОРАТИВНАЯ ПРАВОВАЯ БАЗА ИССЛЕДОВАНИЯ
1. 7.32-2017 «Отчёт о научно-исследовательской работе.
Структура и правила исполнения».
2. ISO 8601:2019 «Данные и время. Обмен информацией.
Формат представления даты и времени».
3. ГОСТ Р 7.0.97-2016 «Документы. Общие требования
к оформлению».
4. Стандарт E.164ITU-T) — международный формат
телефонных номеров.

16. Теоретическая база

ТЕОРЕТИЧЕСКАЯ БАЗА ИССЛЕДОВАНИЙ
В работе использованы труды отечественных и зарубежных авторов:
- Лутц М. «Изучаем Python» — основы языка и ООП.
- Саммерфилд М. «Python на практике» — применение
стандартной библиотеки.
- Хиггинс. «Python для анализа данных» — обработка данных.
- Документация Python (docs.python.org) — справочные
материалы по модулям datetime, re, string.

17. Ключевые понятия по теме

КЛЮЧЕВЫЕ ПОНЯТИЯ ПО ТЕМЕ
- Валидация — проверка данных на соответствие формату
и правилам.
- Нормализация — приведение данных к единому стандартному
виду.
- Регулярное выражение — шаблон для поиска и замены
текста, используемый для разбора строк.
- Нормализованный формат — единый вид, который удобно
хранить и обрабатывать.
- Дата в формате 8601 — международный стандарт
записи даты (ГГГГ-ММ-ДД).
English     Русский Правила