Надеюсь, я смогу объяснить, чего я пытаюсь достичь. У меня нет проблем с достижением моего результата, но я знаю, что это, вероятно, не лучший способ сделать это.
У меня есть таблица с некоторыми записями по дате. Я пытаюсь взять эти записи из текущего месяца и упорядочить их по списку по неделям, а затем суммировать значения из таблицы для каждого дня недели. Конечный результат будет выглядеть примерно так:
{44: {4: Decimal('2.80'), 5: Decimal('6.30')}, 45: {1: Decimal('8.90'), 2: Decimal('10.60')}}
У меня есть решение. Но я знаю, что это не лучший способ сделать это. Любые идеи о том, как сделать это лучше?
#Queries the database and returns time objects that have fields 'hours' and 'date'
time = self.month_time()
r = {}
for t in time:
#Get the week of the year number
week = t.date.isocalendar()[1]
#Get the day of the week number
day = t.date.isoweekday()
if week not in r:
r.update({week:{}})
if day not in r[week]:
r[week][day] = 0
r[week][day] = r[week][day] + t.hours