Python将JSON转列表及Django展示API返回JSON列表的最简方法
最简实现方案:JSON转Python列表 + Django API数据展示
嘿,这两个需求其实都能用Python和Django自带的工具轻松搞定,给你最简洁的实现方式:
1. 将输入JSON转换为Python列表
Python自带的json模块就能直接完成这个转换,完全不需要额外依赖:
如果输入是JSON字符串,用
json.loads()直接转成Python列表:import json # 示例JSON字符串(数组格式) input_json_str = '[{"id": 1, "title": "Item 1"}, {"id": 2, "title": "Item 2"}]' python_list = json.loads(input_json_str) # 验证类型:输出 <class 'list'> print(type(python_list))如果输入是JSON文件,用
json.load()读取并转换:import json with open("input_data.json", "r") as f: python_list = json.load(f)
不管哪种情况,转换后直接得到Python列表,后续可以直接操作。
2. API获取数据转列表 + Django展示
你之前用json.dumps(data)输出全部数据,是因为把Python对象转成了JSON字符串,模板没法直接遍历。最简方式是在视图里把API返回的JSON直接转成Python列表,传给模板后循环渲染:
步骤1:视图层处理API请求
先确保安装了requests(用来调用API):pip install requests,然后在Django视图里写逻辑:
# views.py import requests from django.shortcuts import render def api_data_display(request): # 调用目标API api_response = requests.get("https://your-api-endpoint.com/get-items") # 直接将API返回的JSON转为Python列表(如果API返回的是JSON数组) data_list = api_response.json() # 如果API返回的是单个JSON对象,把它包装成列表统一处理 # data_list = [api_response.json()] # 把列表传给模板 return render(request, "data_display.html", {"data_list": data_list})
步骤2:模板层渲染数据
在模板里直接遍历列表,展示每个字段:
<!-- templates/data_display.html --> <h3>API获取的数据列表</h3> <div class="data-container"> {% for item in data_list %} <div class="data-item"> <p>ID: {{ item.id }}</p> <p>内容: {{ item.content }}</p> </div> {% empty %} <p>暂无数据可展示</p> {% endfor %} </div>
这样就能在Django页面上优雅地展示每个数据项,完全不用json.dumps(除非你需要在前端用JS处理数据,那再单独输出JSON字符串)。
内容的提问来源于stack exchange,提问作者Sriram
相关产品推荐
相关产品推荐

