python - 在 Django 模板中迭代 JSON 数据

标签 python json django wagtail

我在迭代一些我设法导入到 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/

相关文章:

python - 在 Django 模板中,当键存储在变量中时,如何打印字典中的值?

python - Django TypeError <Page 1 of 8> 不是 JSON 可序列化的

javascript - SQL数据库转Json数组

javascript - 如何循环 Alpha Vantage 时间戳

python - Django 中 DateTimeInput 的显示和输入相同的日期时间格式

Django request.session 未传递到下一个 View

python - Django pytest 用于登录

java - 将 BitSet 或 boolean 数组从 Java 序列化到 Base64 再到 Python

python - 如何在二维数组中输入元素

Python 诅咒、线程 : Output thread reports a lagging value for global variable