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

如何使用Jinja提取JSON字段并渲染为表格

Jinja渲染JSON为表格的实现方案

完全可以实现,核心逻辑是遍历传入的JSON字典对象的键值对逐行生成表格结构,具体操作如下:

  • 前置准备:如果传入Jinja的是字符串格式的JSON,需要先在业务逻辑层将其反序列化为字典对象,再作为变量传入Jinja渲染上下文,Jinja原生不提供JSON字符串解析能力。
  • 基础版模板:针对普通键值对结构的JSON,可以直接用如下模板渲染标准两列表格:
<table>
  <thead>
    <tr>
      <th>字段名称</th>
      <th>字段内容</th>
    </tr>
  </thead>
  <tbody>
    {% for field_name, field_content in json_data.items() %}
    <tr>
      <td>{{ field_name }}</td>
      <td>{{ field_content }}</td>
    </tr>
    {% endfor %}
  </tbody>
</table>
  • 适配逗号分隔列表值的增强版模板:如果部分字段值是逗号分隔的列表格式,可以在模板内增加判断,对这类值拆分后渲染为列表,可读性更好:
<table>
  <thead>
    <tr>
      <th>字段名称</th>
      <th>字段内容</th>
    </tr>
  </thead>
  <tbody>
    {% for field_name, field_content in json_data.items() %}
    <tr>
      <td>{{ field_name }}</td>
      <td>
        {% if ',' in field_content %}
        <ul>
          {% for single_val in field_content.split(',') %}
          <li>{{ single_val.strip() }}</li>
          {% endfor %}
        </ul>
        {% else %}
        {{ field_content }}
        {% endif %}
      </td>
    </tr>
    {% endfor %}
  </tbody>
</table>

以你提供的示例JSON为例,将其作为json_data变量传入后,基础版模板渲染出的表格对应内容如下:

字段名称字段内容
InvestigationNameUser reported message as malicious 'Rules of Conduct' for 'Phish'
StatusNo threats found
ProcessedBySentinelTrue
Alert generation statusFull alert created

注意:如果你是在Microsoft Sentinel、Ansible、Airflow这类内置Jinja运行时的平台上使用,直接将模板填入对应配置位置即可,这类平台通常会自动将关联的JSON数据注入渲染上下文,不需要手动做反序列化处理。如果是HTML场景使用,Jinja默认开启的自动转义会自动处理特殊字符,不需要额外做转义配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:24:19