Вот мой большой запрос:
SELECT datestamp, slot, food, price, menu
FROM `food_table`
WHERE datestamp BETWEEN 2020-01-01 AND 2020-01-25
большой запрос дал мне следующий вывод:
Row((datetime.date(2020, 1, 1), 'slot-1', None, None, None), {'datestamp': 0, 'slot': 1, 'food': 2, 'price': 3, 'menu': 4})
Row((datetime.date(2020, 1, 2), 'slot-2', None, None, None), {'datestamp': 0, 'slot': 1, 'food': 2, 'price': 3, 'menu': 4})
Row((datetime.date(2020, 1, 2), 'slot-2', None, None, None), {'datestamp': 0, 'slot': 1, 'food': 2, 'price': 3, 'menu': 4})
Row((datetime.date(2020, 1, 2), 'slot-3', None, None, None), {'datestamp': 0, 'slot': 1, 'food': 2, 'price': 3, 'menu': 4})
Row((datetime.date(2020, 1, 3), 'slot-1', None, None, None), {'datestamp': 0, 'slot': 1, 'food': 2, 'price': 3, 'menu': 4})
До сих пор я делал что-то подобное для форматирования:
report_data = defaultdict(lambda: defaultdict())
for row in query_job:
date=row['datestamp']
report_data[row['slot']][date] = row
print(report_data)
Но, похоже, это не мой ожидаемый формат. Ожидаемый формат:
{'slot-1': defaultdict(None, {'2020-01-01': {'food': 2, 'price': 3, 'slot': 'slot-1', 'menu': 4, 'date': '2020-01-01'},{'2020-01-03': {'food': 2, 'price': 3, 'slot': 'slot-1', 'menu': 4, 'date': '2020-01-03'}),
{'slot-2': defaultdict(None, {'2020-01-02': {'food': 4, 'price': 6, 'slot': 'slot-2', 'menu': 4, 'date': '2020-01-02'},
{'slot-3': defaultdict(None, {'2020-01-02': {'food': 2, 'price': 3, 'slot': 'slot-2', 'menu': 4, 'date': '2020-01-02'},