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

Django视图加载本地JSON文件并生成合法context变量的方法

本地JSON文件加载实现方案

你只需要用Python内置的json模块读取本地文件并反序列化为Python对象即可,和之前从远程接口获取JSON的逻辑差异极小。你核心关注的context变量构造逻辑不需要任何调整,因为读取本地JSON后得到的data和远程接口返回的data格式完全相同,后续处理逻辑可以100%复用。


1. 导入依赖模块

首先在视图文件顶部引入需要的模块:

import json
from django.conf import settings # 用于获取项目根路径构造文件地址,可选但推荐

2. 完整修改后的视图代码

def object_api(request):
    # 构造本地文件绝对路径,示例假设example.txt放在Django项目根目录
    file_path = settings.BASE_DIR / 'example.txt'
    
    # 读取并解析本地JSON文件,得到的data和之前response.json()的格式完全一致
    with open(file_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
    
    # 后续逻辑完全复用原有代码即可
    arr = [dic for dic in data ]
    
    context = {
        'data': arr,
    } 

    return render(request, 'output.html', context)

3. 注意事项

  • 确保example.txt内的JSON格式合法,否则会抛出JSONDecodeError异常
  • 不推荐在生产环境使用相对路径指定文件位置,容易出现文件找不到的问题
  • 可选添加异常处理增强代码鲁棒性,示例如下:
def object_api(request):
    file_path = settings.BASE_DIR / 'example.txt'
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            data = json.load(f)
    except FileNotFoundError:
        # 文件不存在时的兜底逻辑,可按业务需求自定义
        data = []
    except json.JSONDecodeError:
        # JSON格式错误时的兜底逻辑,可按业务需求自定义
        data = []
    
    arr = [dic for dic in data ]
    context = {'data': arr}
    return render(request, 'output.html', context)

内容的提问来源于stack exchange,提问作者Konstantin-007

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:18:02