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 секунд |