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

如何将Excel中的JSON输出转为表格?json_normalize()无效

解决方案

问题出在你直接对Excel里的字符串类型JSON使用json_normalize(),它无法识别字符串格式的JSON,只会把整个字符串当作单一对象处理,导致返回object类型的结果。需要先把JSON字符串解析为Python字典,再进行标准化处理,具体步骤如下:

步骤1:读取Excel并解析JSON字符串

首先用pandas读取Excel文件,然后将存储JSON的列从字符串解析为字典:

import pandas as pd
import json

# 替换为你的Excel文件路径
df = pd.read_excel("your_excel_file.xlsx")

# 假设JSON数据在名为'json_column'的列中,解析为字典
# 可选:添加异常处理避免格式错误导致崩溃
def parse_json(s):
    try:
        return json.loads(s)
    except (json.JSONDecodeError, TypeError):
        return {}

df['parsed_json'] = df['json_column'].apply(parse_json)

步骤2:标准化JSON并重命名列

用json_normalize()处理解析后的字典列,再将英文列名改为中文:

# 标准化JSON数据为表格格式
normalized_df = pd.json_normalize(df['parsed_json'])

# 重命名列名
normalized_df = normalized_df.rename(columns={
    'text1': '文本1',
    'text2': '文本2',
    'text3': '文本3'
})

步骤3:生成目标HTML表格(可选)

如果需要生成你展示的那种带样式的HTML表格,可以用to_html()方法:

# 生成HTML表格,指定类名
html_table = normalized_df.to_html(classes='s-table', index=False, header=True)
# 包裹外层容器
full_html = f'<div class="s-table-container">{html_table}</div>'

# 打印结果或保存到文件
print(full_html)
# 保存到HTML文件
with open('result_table.html', 'w', encoding='utf-8') as f:
    f.write(full_html)

关键说明

  • Excel中的JSON是字符串格式,必须先通过json.loads()转换为Python字典,json_normalize()才能正确识别并展开为多列。
  • 如果JSON列存在空值或格式错误,parse_json()里的异常处理会返回空字典,避免程序中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:54:33