2011-12-22 11 views
0

を使用して、列の並べ替えする必要があります。は、潜在的に列を拡大してHTMLテーブルを生成して、私は以下のようなフォーマットで辞書のリストを作成しているジャンゴ

[{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は投資計画の名前それらはここに私はハードコードにしたくない

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

: -True/Falseのは、私は、以下のいずれかのようジャンゴを使用してHTML出力を作成したい情報がその特定の月

のために入力されているかどうかを指し、列名(つまりPLAN_A、PLAN_B、PLANC)、今後計画が増える可能性があります。

私は<tr><td>を作成するためのfor-loopになると思います。私がこれをRとして動作させている場合は、dataframeの列を私が好きなように再配置します(おそらくPLAN_Aを第3列にしたいが、最初の列ではないようにする)が、その辞書をソートすることはできません。 keysをどのように配置するかわからない場合は、私のデータセットにあるように、dateのキーは7番目の列にあります。

誰でも手助けできますか?ありがとう。ここで

+0

これはPythonの質問であり、djangoの質問ではありません。 Pythonでやるのが簡単で、テーブルとしてDjangoに簡単に書式設定することができます。私はそれをretagします。 – Spacedman

+0

データがその形式になっている理由はありますか?それは非常に扱いにくく、始めるために何か他のものを生成した方が簡単かもしれません。たとえば、{'date': '010101'、 'plans':{'planA':True、 'planB':False}}という形式の辞書のリスト - リスト内の各要素は、計画アイテム?さらに良いことに、これを処理する新しいクラスを作成し、それをすべてきれいに整えておくのがよい方法です... – Spacedman

+0

リストの各要素について、すべてのプラン名が常に同じですか? PLAN_Aが要素6にない場合は、すべての要素をループする必要がありますか? – Spacedman

答えて

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']) 

関連する問題