【问题标题】:How to use JSON data on Django View如何在 Django View 上使用 JSON 数据
【发布时间】:2021-03-25 10:28:12
【问题描述】:

我需要在 Django 中使用来自 API 的 JSON 数据查看这里是我的 JSON 数据;

[{'Count': 5491}]

我只需要将“Count”键的值传递给 HTML,views.py 如下所示;

def serviceReport(request):
    data = mb.post('/api/card/423/query/json')
    context = {
        'count' : data['Count']
    }
    return render(request, 'service_report.html', context)

我收到这样的错误;

异常类型:TypeError 异常值:
列表索引必须是整数或切片,而不是 str

我想要将计数键的值传递给 service_report.html,并且我想将多个 JSON 数据(如 data2、data3)作为 views.py 上的数据传递,我该怎么做?

【问题讨论】:

  • 这能回答你的问题吗? Using JSON in django template
  • 不幸的是,这给了我完整的 JSON,但我只需要 Count 键的值。此外,我可以在没有 SafeString 的情况下获得相同的结果; return render(request, 'service_report.html', {'data': data})

标签: python django


【解决方案1】:

json 正在返回一个包含字典的列表。

[{'Count': 5491}] 

方括号是列表,因此请使用 data[0] 访问它

def serviceReport(request):
    data = mb.post('/api/card/423/query/json')
    context = {
        'count' : data[0]['Count']
    }
    return render(request, 'service_report.html', context)

【讨论】:

    【解决方案2】:

    Views.py:

    def serviceReport(request):
    data = mb.post('/api/card/423/query/json')
    context = {
        'data' : data
    }
    return render(request, 'service_report.html', context)
    

    html 模板: 在 Django 中,您可以使用 {% %} 将 Python 代码转换为 html, 所以你可以做这样的事情。

    <div>
        {% for element in data %}
            <div>{{element.data}}</div>
        {% endfor %}
    </div>
    

    此外,如果您想检查数据中的内容,您可以使用 {{data}} 无论如何,我建议您在您的 views.py 中执行一个 for 以仅将“计数”数据附加到列表中,然后将该列表传递给上下文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-29
      • 2013-08-08
      • 2019-06-06
      • 1970-01-01
      • 2021-11-12
      • 2020-08-15
      • 2012-09-06
      • 2013-10-30
      相关资源
      最近更新 更多