我在迭代一些我设法导入到 Django Wagtail 项目中的 JSON 数据时遇到问题。我想在网站上列出从此处获取的旅行建议:http://data.international.gc.ca/travel-voyage/index-updated.json
我能够在我的模型中执行此操作,如下所示:
import requests
def get_context(self, request):
response = requests.get('http://data.international.gc.ca/travel-voyage/index-updated.json')
json_response = response.json()
data = json_response['data']
context = super(TravelAdvisoriesPage, self).get_context(request)
context['data'] = data
return context
我现在不确定如何将数据导入我的模板。我可以使用 {{ data }}
提取所有数据。
但是如何从 JSON 数据中提取特定项目呢?我想获取英语和法语名称、url-slug、咨询文本等。所有这些都嵌套在 JSON 结构内的 data > Country Code > language > item
中。
我尝试过类似的方法:
{% for country in data %}
{{ data[country].eng.name }}<br />
{% endfor %}
这给我带来了诸如无法解析其余部分的错误:'data[country].eng.name'中的'[country].eng.name'
。您如何在模板中获取这些内容?
最佳答案
Django 模板有自己的语法,与 Python 语法不同。不允许您在 {{ data[country].eng.name }}
中使用的方括号表示法。使用 items 字典函数迭代 dict 键和 dict 值:
{% for country_key, country_value in data.items %}
{{ country_value.eng.name }}<br />
{% endfor %}
关于python - 在 Django 模板中迭代 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46246715/