Similar presentations:
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 — международный стандарт
записи даты (ГГГГ-ММ-ДД).