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

Flask模板中Pandas DataFrame转JSON后遍历生成空表格问题

问题分析与解决方案

你遇到的问题核心在于:后端传递给模板的是JSON格式的字符串,而不是Jinja2可以直接迭代的Python列表/字典对象。虽然直接输出ctrsuccess能看到正确的JSON结构,但当你用{% for %}循环它时,实际上是在循环字符串的每个字符,自然不会渲染出表格内容。

下面给你两种可行的解决办法:

方法一:后端直接传递Python字典列表(推荐)

不需要把DataFrame转成JSON字符串,直接用to_dict('records')方法生成Python列表,这样模板可以直接迭代:

# 后端修改代码
jsonfiles = df.to_dict('records')  # 替换原来的to_json
return render_template('index.html', ctrsuccess=jsonfiles)

模板代码不需要修改,保持原来的循环逻辑即可,因为现在ctrsuccess已经是可迭代的列表了。

方法二:模板中使用fromjson过滤器转换字符串

如果你一定要保留后端转JSON的逻辑,那可以在模板里用Jinja2的fromjson过滤器把JSON字符串转换成Python对象:

<!-- 模板修改代码 -->
{%if ctrsuccess %}
<div class="table-responsive">
  <table class="table table-striped">
    <tbody>
      {%for ctrrow in ctrsuccess|fromjson %}  <!-- 添加fromjson过滤器 -->
      <tr>
        <td>{{ ctrrow['positionint'] }}</td>
      </tr>
      {%endfor%}
    </tbody>
  </table>
</div>
{%endif%}

这样就能正确循环JSON数组里的每个对象,渲染出表格内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:43:35