создать HTML-таблицу с потенциально расширяющимися столбцами и необходимость переупорядочивания столбцов, используя django - PullRequest
0 голосов
/ 22 декабря 2011

Я создал список словаря в следующем формате:

[{u'PLAN_A': True, u'PLAN_B': True, u'PLAN_C': True, u'PLAN_D': True, 
  u'PLAN_E': True, u'PLAN_F': True, 'date': u'2011-08-01', u'PLAN_G': True}
 {u'PLAN_A': True, u'PLAN_B': True, u'PLAN_C': True, u'PLAN_D': True, 
  u'PLAN_E': True, u'PLAN_F': True, 'date': u'2011-08-01', u'PLAN_G': True}]

Небольшое объяснение здесь:

Список содержит информацию, чтобы проверить, уже есть ли информация об инвестиционных планах.при условии наличия определенного месяца, если информация доступна, она будет TRUE, если нет, то будет FALSE - PLAN_A - это название инвестиционного плана, что означает, что их здесь 7 - Истина / Ложь относится квведена ли информация для этого конкретного месяца

Я хочу создать вывод HTML, используя django, как показано ниже:

DATE    PLAN_A  PLAN_B  PLAN_C
2010-01 TRUE    FALSE   TRUE
2010-02 TRUE    FALSE   TRUE
2010-03 TRUE    FALSE   FALSE

Я не хочу жестко кодировать имя столбца (то есть PLAN_A, PLAN_B, PLANC), поскольку в будущем число планов может увеличиться.

Я думаю, что это будет цикл для создания <tr> и <td>.Если я работаю как R, я переставлю столбец dataframe так, как мне нравится (возможно, я хочу, чтобы PLAN_A был в третьем столбце, но не в первом столбце), но зная, что словарь не может быть отсортированЯ не знаю, как расположить keys внутри, как вы можете видеть в моем наборе данных, ключ date находится в 7-м столбце.

Кто-нибудь может помочь?Спасибо.

1 Ответ

1 голос
/ 22 декабря 2011

Вот код, который дает список в указанном выше формате (с пропущенной запятой в нужном месте), с которой вы можете работать:

bydate = []
planNames = set()
for d in data:
    ddict = {'date': d['date']}
    plans = d
    del plans['date']
    planNames = planNames.union(plans.keys())
    ddict['plans']=plans
    bydate.append(ddict)

после этого 'bydate' будет:

[{'date': u'2011-08-01', 'plans': {u'PLAN_B': True, u'PLAN_C': True, u'PLAN_A': True, u'PLAN_F': True, u'PLAN_G': True, u'PLAN_D': True, u'PLAN_E': True}}, {'date': u'2011-08-22', 'plans': {u'PLAN_B': False, u'PLAN_C': True, u'PLAN_A': True, u'PLAN_F': False, u'PLAN_G': True, u'PLAN_D': True, u'PLAN_E': True}}]

, который вы можете отсортировать по ключу даты. И «planNames» это:

set([u'PLAN_B', u'PLAN_C', u'PLAN_A', u'PLAN_F', u'PLAN_G', u'PLAN_D', u'PLAN_E'])

, который представляет собой набор (например, список, но уникальные элементы) всех имен планов, упомянутых в данных.

...