Как эффективно преобразовать денормализованные данные в JSON?

Я изучаю django и не смог найти ответ на этот вопрос.

Я получаю данные запроса в денормализованном виде. Вот как это выглядит.

Store_id Shelf_id Product_id Qty
store1 shelf1 product1 20
store1 shelf1 product2 24
store1 shelf2 product1 34
store1 shelf2 product3 12
store2 shelf1 product3 21
store2 shelf1 product1 46

и так далее. Существуют отношения "один-ко-многим" от магазина к полке и к моделям товаров. Я написал цикл foreach, чтобы перебрать весь набор данных и преобразовать его в JSON, как

[
  {"store1" : [
    {"shelf1" : [
      {"product1" : 20}, 
      {"product2" : 24}]
    }, 
    {"shelf1" : [...]}]
  },
  {"store2" : [...]},
]

Несмотря на то, что цикл foreach довольно прост в написании, он довольно неэффективен при выполнении. Для каждой записи он должен проверить, существует ли магазин и полка, прежде чем добавить запись о товаре. Ожидается, что производственные данные будут содержать 100+ магазинов и 5000+ полок, а их количество составит около 1,5 млн строк в день. Это большое количество ключевых запросов. Есть ли способ генерировать данные в формате JSON непосредственно из запросов django?

Вернуться на верх