import json import time # Предполагаем, что глобальные переменные уже обновлены в другом месте кода # и доступны для использования здесь globs = { "dey": None, "wek": None, "v_hid": None, "v_min": None, "ph": None } # Функция для создания JSON-объекта из глобальных переменных def create_json_from_globals(week): data = { "week": week, "data": [] } # Для каждого дня недели for day in range(1, 8): # Предполагаем, что в неделе 7 дней # Для каждого часа for hour in range(0, 24): # Для каждой минуты (0 и 30) for minute in [0, 30]: # Используем текущие значения глобальных переменных data["data"].append({ "day": str(day), "hour": hour, "minute": minute, "ph": globs["ph"] }) return json.dumps(data, indent=4) # Переменная для отслеживания текущей недели current_week = None # Бесконечный цикл, который каждые 30 минут проверяет, изменилась ли неделя while True: # Проверяем, что текущая неделя изменилась if globs["wek"] is not None and globs["wek"] != current_week: current_week = globs["wek"] # Создание JSON-объекта с текущими значениями глобальных переменных json_data = create_json_from_globals(current_week) # Запись JSON-объекта в файл filename = f'week_{current_week}.json' with open(filename, 'w') as f: f.write(json_data) # Пауза на 30 минут перед следующей итерацией time.sleep(1800) # 1800 секунд = 30 минут * 60 секунд