我在json中有一本词典,我正在使用python传递给jinja。 该页面无法确定这是否是正确的语法
{% with open(jsonobject, 'r') as f
json_data = json.load(f)
for a, (b,c) in json_data.items() %}
-------------- EDIT ----------- 这是传递给它的json对象中的一个大字典,看起来像这样
{"Dogs": [["spot"], 1], "Cats": [["whiskers"], 1], "fish": [["bubbles", "lefty", "tank", "goldie"], 4], "elephant": [["tiny", "spring"], 2], "zebra": [[], 1], "gazelle": [["red", "blue", "green", "yellow", "gold", "silver"], 6]}
答案 0 :(得分:2)
您最好在视图函数中将JSON解码为python字典并将其传递给jinja:
import json
@app.route("/something")
def something():
with open('myfile.json', 'r') as f:
json_data = json.loads(f.read())
return render_template("something.html", json_data=json_data)
something.html:
<dl>
{% for key, value in json_data.iteritems() %}
<dt>{{ key|e }}</dt>
<dd>{{ value|e }}</dd>
{% endfor %}
</dl>
答案 1 :(得分:0)
如果你的目标是打印漂亮的json
字符串,那么在将实际字符串传递给jinja
之前准备它可能会更好。
在视图中,您可以执行此操作:
import json
@app.route("/something")
def something():
with open('myfile.json', 'r') as f:
json_data = json.loads(f.read())
formatted_json = json.dumps(
json_data,
sort_keys=True,
indent=4,
separators=(',', ': '))
return render_template("something.html", json=formatted_json)
在您的something.html
中,您只需打印已格式化的变量:
{{ json }}
中详细了解json字符串格式