You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板无法展示API返回的JSON数据问题求助

Django模板无法展示API返回的JSON数据?这里帮你一步步排查解决!

看起来你已经搞定了API调用和JSON生成的环节,卡在了模板展示这一步对吧?先帮你理清楚问题所在,再给你具体的解决方案:

首先先确认你的核心问题:你把API返回的JSON数据以dataset为名传给了Django模板,但没法正常渲染展示。先看你给出的JSON结构:

{"response_code":1, "response":{"a":"01/07/2017", "b":"12", "c":"23", "d":"34", "e":"45", "f":"56"}, "error_code":null, "error_message":null}

还有你提到的视图片段里用了json.dumps()——这很可能是第一个坑!


第一步:先修正视图里的JSON处理逻辑

你用json.dumps()是把Python对象转成JSON字符串,但Django模板需要的是可直接访问的Python字典。正确的做法应该是把API返回的JSON字符串解析成字典:

import requests
import json

def your_view(request):
    # 你的API配置
    url = "你的API地址"
    payload = {}
    headers = {}
    querystring = {}
    
    # 调用API
    response = requests.request("GET", url, data=payload, headers=headers, params=querystring)
    
    # 重点:把API返回的JSON解析成Python字典
    # 方法1:用json.loads()解析response.text
    dataset = json.loads(response.text)
    # 方法2:更简单,用requests自带的json()方法(推荐)
    # dataset = response.json()
    
    # 传给模板
    return render(request, 'your_template.html', {'dataset': dataset})

可以在视图里加两行打印代码,确认数据格式正确:

print(type(dataset))  # 应该输出 <class 'dict'>
print(dataset)        # 检查结构是否和你给出的JSON一致

第二步:在模板里正确访问数据

你的业务数据嵌套在response字段里,所以不能直接访问dataset的顶层,要先拿到dataset.response:

<!-- 先验证数据是否传到模板:打印响应状态码 -->
<p>API响应状态码:{{ dataset.response_code }}</p>

<!-- 直接展示单个字段 -->
<div class="data-container">
  <p>日期:{{ dataset.response.a }}</p>
  <p>数值b:{{ dataset.response.b }}</p>
  <p>数值c:{{ dataset.response.c }}</p>
  <!-- 其他字段d/e/f同理 -->
</div>

<!-- 如果字段多,用循环遍历更高效 -->
<ul class="data-list">
  {% for key, value in dataset.response.items %}
    <li>{{ key }}: {{ value }}</li>
  {% endfor %}
</ul>

第三步:排查常见的模板坑

  • 拼写错误:JSON的键是大小写敏感的!比如别把dataset.response写成dataset.respone,或者a写成A。
  • 模板继承问题:如果你的模板是extends某个基础模板,要确保把内容放在正确的block标签里,不然内容会被基础模板覆盖。
  • 数据是否真的传到模板:可以在模板里用{{ dataset|pprint }}强制打印整个数据集,看看数据是否存在。如果显示的是一串JSON字符串,说明你视图里还是用了json.dumps(),赶紧改成解析字典的方式!

内容的提问来源于stack exchange,提问作者Sapna Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:39:47