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

Flask中将国家列表存入JSON文件后渲染到HTML表格的方法咨询

实现步骤
  • 第一步:创建独立的JSON数据存储文件
    在你的Flask项目根目录下新建名为country_data.json的文件,将原硬编码的国家数据按JSON语法写入即可。注意JSON格式不支持元组,直接用数组代替,Python读取后会自动转为列表,不影响后续Jinja的渲染逻辑。
    文件内容示例:
[
    ["Nigeria", "160,470,000,000 mᶟ", "216 liter.p.capital", "216,139,589"],
    ["Ethiopia", "10,550,000,000 mᶟ", "279 liter.p.capital", "122,963,588"],
    ["Egypt", "77,550,100,000 mᶟ", "2,202 liter.p.capital", "120,334,404"]
]
  • 第二步:修改search视图函数,读取JSON文件替换硬编码数据
    首先在你的Flask启动文件头部导入依赖模块:
import json
import os

然后修改search视图函数的代码,替换原硬编码的data部分:

# Country page section.
@app.route('/search')
@login_required
def search():
    countryTables = ("Country", "Yearly Water Use", "Daily Water Use", "Population M")
    # 读取独立存储的国家数据
    data_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'country_data.json')
    with open(data_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
    # 传参逻辑完全不变,无需修改模板
    return render_template('search.html', countryTables=countryTables, data=data)
  • 常见调试注意事项

    • JSON语法要求严格:所有字符串必须用双引号包裹,数组最后一个元素末尾不能加多余逗号,否则会触发JSON解析报错,这也是多数人首次调试JSON方案失败的常见原因
    • 上述代码用os.path拼接绝对路径,可避免不同运行环境下工作目录不一致导致的文件找不到问题
  • 后续新增数据操作
    后续需要新增国家条目时,直接在country_data.json的数组里按现有格式添加对应内容即可,不需要修改任何Python或HTML代码,满足你后续扩容的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:57:02