2017-09-08 4 views
-1

私は、JINJA2でJSONファイルを作成する際に、不可解な変数を使用して問題に直面しています。可能なJINJA2テンプレートの変数の問題

変数

Jinja2のテンプレートで
1:  
    abc: 
     add1: "1614" 
     add2: "1615" 
     add3: "1616" 
2:  
    deb: 
     add5: "1617" 
     add6: "1618" 
     add7: "1619" 

、私は正常に来ていない、その後の書式設定

value: {{1 | 2}}

のような値を定義しています。

{ 
    "abc": { 
    "add1": "1614", 
    "add2": "1615", 
    "add3": "1616" 
    }, 
    "deb": { 
    "add5": "1617", 
    "add6": "1618", 
    "add7": "1619" 
    } 
} 

JINJA2宣言についてのご意見はありますか? Jinja2の、バーの文字(「|」)では

答えて

0

used to apply a filterあるので、この場合には、1に、フィルタ2を適用しようとしている、明らかに意味を成しません!

この場合、Jinja2のbuiltin tojson filterを使用することをお勧めします。これは、Pythonオブジェクトを最も近いJSONに変換します。これは、2.9より大きいJinja2のバージョンを使用している場合に表示されます。

12が同じ辞書にあるので、あなたは、単に書くことができるように、理想的には私がデータを事前処理になります。

{{ combined | tojson }} 

をこのオプションではない場合、あなたは少し醜いを試みることができます探して:

{{ dict(1, **2) | tojson }} 

これには2つの辞書をマージするニシキヘビdict constructorを使用しています。

EDIT:あなたのjsonをきれいに印刷したい場合は、例えばインデントの量を指定してtojsonフィルタを呼び出します。 2スペースのインデントを得るには:

{{ data | tojson(2) }} 
+0

ありがとうございます。これはうまくいきます。 –

+0

素晴らしい!あなたがこの答えに満足しているなら、他の人もそれを見つけることができるように、それを正しいものとしてマークしてください。ありがとう! –

関連する問題