Мне нужна помощь. У меня есть словарь, который представляет данные измерений в течение 8 дней каждые 15 минут, но некоторые измерения отсутствуют. Ключи являются объектами даты и времени:
datetime(year, month, date, hour, minute)
, а значения представляют измеряемый параметр. Моя цель - получить новый словарь с ключами, которые представляют только время суток, например:
time(hour, minute)
, а его значения представляют собой списки измерений, которые предоставлялись в одно и то же время каждый день. Итак, вместо первого словаря длины L я хочу получить новый словарь длины L / 8, где каждое значение представляет собой список из 8 чисел (иногда меньше, если в один или два дня пропущено значение). Для меня это очень простая проблема, если пропущенных значений нет, но при пропущенных значениях моя программа возвращает странный результат. Если кто-то может дать идею, было бы здорово! Вот мой код (te c - мой начальный словарь):
time_of_day = []
date = datetime(2020, 1, 13, 0, 0)
while date < datetime(2020, 1, 14, 0, 0):
time_of_day.append(date)
date = date + td(minutes = 15)
day_tec = dict.fromkeys(time_of_day, [])
for i in day_tec.keys():
j = 0
while j < 8:
try:
day_tec[i].append(tec[i + j * timedelta(days = 1)])
except Exception as e:
print(e)
pass
j = j + 1
print(day_tec)
print (day_te c) возвращает словарь с объектами datetime в качестве ключей от datetime (2020, 1, 13, 0, 0) до datetime (2020, 1, 14, 0, 0) каждые 15 минут, но его значения являются списками, длина которых равна начальной длине словаря.