Цей проект призначений для імпорту даних з файлу kodifikator-16-05-2025.csv (Класифікатор адміністративно-територіальних одиниць та територій територіальних громад) в базу даних MongoDB Atlas та управління даними про окупацію територій.
- Читання CSV-файлу: Автоматичне читання та парсинг файлу з кодуванням UTF-8
- Розподіл по колекціях: Дані розподіляються по різних колекціях MongoDB залежно від категорії об'єкта:
level1_regions- Області та АРКlevel2_raions- Райониlevel3_hromadas- Громадиlevel4_settlements- Міста, селища міського типу, селаlevel_additional_city_districts- Міські райони
- Визначення ієрархії: Автоматичне визначення батьківських об'єктів для кожного запису
- Upsert операції: Безпечне оновлення існуючих записів та додавання нових
- Парсинг документів Word: Імпорт даних про окупацію з документів .docx
- Управління історією окупації: Підтримка множинних періодів окупації для кожної території
- Запити за датою: Можливість дізнатися, які території були окуповані на конкретну дату
- Інтерактивний менеджер: Зручний інтерфейс для управління даними про окупацію
- Експорт даних: Експорт даних про окупацію в CSV формат
КАТОТТГ/
├── import_kodifikator.py # Основний скрипт імпорту КАТОТТГ
├── parse_occupation_data.py # Парсинг даних про окупацію з Word
├── occupation_manager.py # Інтерактивний менеджер окупації
├── create_sample_docx.py # Створення прикладу документа Word
├── kodifikator-16-05-2025.csv # Файл з даними КАТОТТГ
├── sample_occupation_data.docx # Приклад документа з даними про окупацію
├── ІНСТРУКЦІЯ_ЗАПУСКУ.md # Детальна інструкція запуску
├── README.md # Цей файл
└── .gitignore # Файл для виключення з Git
- Python 3.x - основна мова програмування
- pandas - для роботи з CSV-файлами
- pymongo - для роботи з MongoDB Atlas
- python-docx - для роботи з документами Word
- python-dateutil - для роботи з датами
- MongoDB Atlas - хмарна база даних
- Python 3.x
- Доступ до MongoDB Atlas
- Файл
kodifikator-16-05-2025.csv
python3 -m pip install pandas pymongo "pymongo[srv]" python-docx python-dateutil --break-system-packages- Відкрийте файли
import_kodifikator.py,parse_occupation_data.py,occupation_manager.py - Замініть рядок підключення до MongoDB Atlas на ваш власний
- Збережіть файли
python3 import_kodifikator.pypython3 create_sample_docx.pypython3 parse_occupation_data.py sample_occupation_data.docxpython3 parse_occupation_data.py --query 15.03.2022python3 occupation_manager.pyКожен запис в MongoDB містить:
_id- код об'єкта (унікальний ідентифікатор)name- назва об'єктаcategory- категорія об'єкта (O, K, P, H, M, X, C, B)parent_code- код батьківського об'єкта (опціонально)
Додатково для територій з історією окупації:
occupation_history- масив періодів окупаціїstart_date- дата початку окупаціїend_date- дата кінця окупації (може бути null)status- статус окупаціїupdated_at- дата оновлення запису
current_occupation_status- поточний статус окупаціїoccupation_start_date- дата початку останнього періоду окупаціїoccupation_end_date- дата кінця останнього періоду окупаціїlast_occupation_update- дата останнього оновлення
Відредагуйте рядок MONGO_CONNECTION_STRING в файлах:
import_kodifikator.pyparse_occupation_data.pyoccupation_manager.py
MONGO_CONNECTION_STRING = "mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority"Відредагуйте змінну DATABASE_NAME в файлах:
DATABASE_NAME = "your_database_name"Після завершення імпорту скрипт показує статистику:
- Кількість записів в кожній колекції
- Загальна кількість імпортованих записів
- Прогрес обробки кожні 1000 записів
python3 parse_occupation_data.py your_occupation_data.docxpython3 parse_occupation_data.py --query 24.02.2022python3 occupation_manager.pyМенеджер надає наступні можливості:
- 🔍 Перевірити статус окупації на конкретну дату
- 📋 Показати історію окупації території
- ➕ Додати період окупації
- 📊 Експорт даних в CSV
- 📈 Статистика окупації
Документ Word повинен містити дані у форматі:
Назва території | Дата початку окупації | Дата кінця окупації | Статус
Приклад:
Донецька область | 24.02.2022 | | Тимчасово окупована
Херсонська область | 02.03.2022 | 11.11.2022 | Звільнена
Детальні інструкції з вирішення можливих проблем дивіться в файлі ІНСТРУКЦІЯ_ЗАПУСКУ.md.
Цей проект розроблено для внутрішнього використання.
AI Assistant, 2025
Примітка: Перед використанням переконайтеся, що у вас є необхідні права доступу до MongoDB Atlas та файлу з даними КАТОТТГ.