diff --git a/python_parser/core/services.py b/python_parser/core/services.py index 90012ae..75f70c3 100644 --- a/python_parser/core/services.py +++ b/python_parser/core/services.py @@ -43,7 +43,7 @@ class ReportService: try: # Парсим файл parse_params = request.parse_params or {} - df = parser.parse(temp_file_path, parse_params) + parse_result = parser.parse(temp_file_path, parse_params) # Генерируем object_id object_id = f"nin_excel_data_{request.report_type}" @@ -54,7 +54,7 @@ class ReportService: print(f"Старый объект удален: {object_id}") # Сохраняем в хранилище - if self.storage.save_dataframe(df, object_id): + if self.storage.save_dataframe(parse_result, object_id): return UploadResult( success=True, message="Отчет успешно загружен", @@ -89,9 +89,9 @@ class ReportService: message=f"Отчет типа '{request.report_type}' не найден. Возможно, MinIO недоступен или отчет не был загружен." ) - # Загружаем DataFrame из хранилища - df = self.storage.load_dataframe(object_id) - if df is None: + # Загружаем данные из хранилища + loaded_data = self.storage.load_dataframe(object_id) + if loaded_data is None: return DataResult( success=False, message="Ошибка при загрузке данных из хранилища. Возможно, MinIO недоступен." @@ -100,11 +100,20 @@ class ReportService: # Получаем парсер parser = get_parser(request.report_type) - # Устанавливаем DataFrame в парсер для использования в геттерах - parser.df = df - print(f"🔍 DEBUG: ReportService.get_data - установлен df в парсер {request.report_type}") - print(f"🔍 DEBUG: DataFrame shape: {df.shape if df is not None else 'None'}") - print(f"🔍 DEBUG: DataFrame columns: {list(df.columns) if df is not None and not df.empty else 'Empty'}") + # Устанавливаем данные в парсер для использования в геттерах + parser.df = loaded_data + print(f"🔍 DEBUG: ReportService.get_data - установлены данные в парсер {request.report_type}") + + # Проверяем тип загруженных данных + if hasattr(loaded_data, 'shape'): + # Это DataFrame + print(f"🔍 DEBUG: DataFrame shape: {loaded_data.shape}") + print(f"🔍 DEBUG: DataFrame columns: {list(loaded_data.columns) if not loaded_data.empty else 'Empty'}") + elif isinstance(loaded_data, dict): + # Это словарь (для парсера ПМ) + print(f"🔍 DEBUG: Словарь с ключами: {list(loaded_data.keys())}") + else: + print(f"🔍 DEBUG: Неизвестный тип данных: {type(loaded_data)}") # Получаем параметры запроса get_params = request.get_params or {}