Files
Hentai_manga_parser/test.py

44 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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("=== Импорт завершен ===")