我已经创建了一个字典列表,格式如下:
[{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个
- True / False指的是是否为该特定月份输入了信息
我想使用django创建一个HTML输出,如下所示:
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>
的for循环。如果我将其作为R工作,我会将dataframe
的列重新排列为我喜欢的方式(也许我希望PLAN_A位于第三列,但不是第一列),但知道字典不能排序,我不知道如何安排keys
内部,正如您在我的数据集中看到的那样,date
键位于第7列。
有人可以帮忙吗?感谢。
答案 0 :(得分:1)
这里有一些代码以上面的格式给出一个列表(在正确的地方缺少逗号)会产生一些你可以使用的代码:
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'])
这是数据中提到的所有计划名称的集合(如列表,但是唯一元素)。