繁体   English   中英

在Django模板中迭代JSON数据

[英]Iterate through JSON data in Django template

我无法迭代我设法导入到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 }}提取所有{{ data }}

但是如何从JSON数据中提取特定项目? 我想要同时获取英文和法文名称,url-slug,咨询文本等。所有这些都嵌套在JSON结构中的data > country code > language > item中。

我尝试过类似的东西:

{% for country in data %}
  {{ data[country].eng.name }}<br />
{% endfor %}

这给了我一些错误,比如Could not parse the remainder: '[country].eng.name' from 'data[country].eng.name' 你如何在模板中抓住这些?

Django模板有自己的语法与Python语法不同。 您在{{ data[country].eng.name }}使用的括号表示法是不允许的。 使用items dictionary函数迭代dict键和dict值:

{% for country_key, country_value in data.items %}
  {{ country_value.eng.name }}<br />
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM