diff --git a/python_parser/adapters/parsers/monitoring_fuel.py b/python_parser/adapters/parsers/monitoring_fuel.py index 08ddfd2..aa463f7 100644 --- a/python_parser/adapters/parsers/monitoring_fuel.py +++ b/python_parser/adapters/parsers/monitoring_fuel.py @@ -6,7 +6,7 @@ from typing import Dict, Tuple from core.ports import ParserPort from core.schema_utils import register_getter_from_schema, validate_params_with_schema from app.schemas.monitoring_fuel import MonitoringFuelTotalRequest, MonitoringFuelMonthRequest, MonitoringFuelSeriesRequest -from adapters.pconfig import data_to_json +from adapters.pconfig import data_to_json, get_object_by_name # Настройка логгера для модуля logger = logging.getLogger(__name__) @@ -179,7 +179,12 @@ class MonitoringFuelParser(ParserPort): data = row.get('data') if month and data is not None: - data_dict[month] = data + # data уже является DataFrame, поэтому используем его напрямую + if isinstance(data, pd.DataFrame): + data_dict[month] = data + else: + # Если data не DataFrame, пропускаем + logger.warning(f"Данные за месяц {month} не являются DataFrame, пропускаем") return data_dict @@ -295,10 +300,10 @@ class MonitoringFuelParser(ParserPort): # Проверяем, что колонка 'name' существует if 'name' in df_full.columns: - # Применяем функцию get_id_by_name к каждой строке в колонке 'name' - # df_full['id'] = df_full['name'].apply(get_object_by_name) # This line was removed as per new_code - # Временно используем name как id - df_full['id'] = df_full['name'] + # Применяем функцию get_object_by_name к каждой строке в колонке 'name' + df_full['id'] = df_full['name'].apply(get_object_by_name) + # Удаляем строки, где не удалось найти ID + df_full = df_full.dropna(subset=['id']) else: # Если нет колонки name, создаем id из индекса df_full['id'] = df_full.index diff --git a/streamlit_app/parsers_ui/monitoring_fuel_ui.py b/streamlit_app/parsers_ui/monitoring_fuel_ui.py index 00b6f7e..e0f254c 100644 --- a/streamlit_app/parsers_ui/monitoring_fuel_ui.py +++ b/streamlit_app/parsers_ui/monitoring_fuel_ui.py @@ -128,15 +128,8 @@ def render_monitoring_fuel_tab(): # Показываем количество найденных ID st.info(f"📊 Найдено {len(series_data)} объектов") - # Создаем DataFrame для отображения - df_series = pd.DataFrame(series_data).T - df_series.index.name = 'ID объекта' - - st.dataframe(df_series, use_container_width=True) - - # Показываем JSON для отладки - with st.expander("🔍 JSON данные"): - st.json(result) + # Показываем JSON данные + st.json(result) else: st.warning("⚠️ Данные не найдены") else: