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

Flask读取JSON字典列表渲染为HTML用户表格问题求助

Flask生成用户信息HTML表格修改方案

原代码存在的问题

  • 遍历逻辑错误:for i in len(file)会触发TypeError,整数类型不可直接迭代
  • 嵌套循环逻辑冗余且错误:不需要内层循环遍历整个列表长度,只需取当前用户字典的firstname、username、mail三个指定字段
  • 代码缩进不规范:Flask视图函数内的代码没有正确缩进,会直接触发语法错误
  • 表头字段与需求不匹配:原代码表头为丹麦语字段,需调整为需求要求的Name、Username、Mail
  • 读取JSON文件未指定编码,特殊字符场景下可能出现乱码

修改后完整代码

import json
from flask import Flask

app = Flask(__name__)

@app.route("/showallusers")
def show_users():
    # 读取用户JSON文件
    with open("users.json", encoding="utf-8") as f:
        user_list = json.load(f)

    # 拼接HTML基础结构和表头
    res = """
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>用户列表</title>
        <style>
            table {border-collapse: collapse;}
            th, td {border: 1px solid #ccc; padding: 8px 12px;}
            th {background: #f5f5f5;}
        </style>
    </head>
    <body>
    <table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Username</th>
            <th>Mail</th>
        </tr>
    </thead>
    <tbody>
    """
    # 遍历用户列表拼表格行
    for user in user_list:
        res += f"""
        <tr>
            <td>{user.get('firstname', '')}</td>
            <td>{user.get('username', '')}</td>
            <td>{user.get('mail', '')}</td>
        </tr>
        """
    # 拼接HTML尾部
    res += """
    </tbody>
    </table>
    </body>
    </html>
    """
    return res

if __name__ == "__main__":
    app.run(debug=True)

核心修改说明

  • 直接遍历用户列表元素,不需要通过下标索引取值,代码更简洁
  • 用dict.get()方法取字段值,避免某个字典缺失对应键时触发KeyError异常
  • 增加了基础的表格样式,显示效果和需求给出的Markdown表格一致
  • 增加了页面UTF-8编码声明,避免中文乱码
  • 修正了所有缩进错误,代码可直接运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:06:08