from pymongo import MongoClient from pymongo.errors import DuplicateKeyError import json def import_from_json(file_path: str): # Подключение к MongoDB client = MongoClient("mongodb://localhost:27017/") db = client["Manga"] collection = db["Hentai_Manga"] # Создаем индекс для нового поля original_id collection.create_index("original_id", unique=True) with open(file_path, "r", encoding="utf-8") as file: data = json.load(file) for manga_title, manga_data in data.items(): try: # 1. Заменяем ключи manga_data["original_title"] = manga_title # Правильный способ заменить ключи: if 'id' in manga_data: manga_data['original_id'] = manga_data.pop('id') # Исправлено: pop() - это метод, а не индекс if 'num' in manga_data: manga_data['id'] = manga_data.pop('num') # Меняем num на id # 2. Вставка документа collection.insert_one(manga_data) print(f"Успешно добавлено: {manga_title} (ID: {manga_data.get('id')})") except DuplicateKeyError: print(f"Дубликат, пропускаем: {manga_title} (original_id: {manga_data.get('original_id')})") except Exception as e: print(f"Ошибка с '{manga_title}': {type(e).__name__} - {str(e)}") client.close() if __name__ == "__main__": print("=== Начало импорта ===") import_from_json("BD_hentai_1.json") print("=== Импорт завершен ===")