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

嵌套字典结构JSON文件转换为指定格式Pandas DataFrame问题求解

问题原因
  1. pd.json_normalize的record_path参数要求指向的JSON节点为列表类型,当前JSON中quiz节点为字典结构,不符合参数要求,因此抛出类型错误。
  2. 仅指定max_level=2时,方法只会将所有嵌套字段拍平为带层级前缀的列,输出单行结果,无法拆分出多个题目行,不符合预期。
解决代码
import json
import pandas as pd

# 读取JSON文件
with open("json2.json", "r", encoding="utf-8") as f:
    data = json.load(f)

rows = []
# 提取所有行共用的公共字段
common_fields = {k: v for k, v in data.items() if k != "quiz"}

# 遍历quiz下的学科分类
for subject, question_map in data["quiz"].items():
    # 遍历每个学科下的所有题目
    for q_id, q_content in question_map.items():
        row = {
            "quiz": subject,
            q_id: q_id,
            **q_content,
            **common_fields
        }
        rows.append(row)

# 生成DataFrame并调整列顺序为预期格式
df = pd.DataFrame(rows)[["quiz", "q1", "q2", "question", "options", "answer", "test_dict", "summary", "viewer rating"]]
结果说明

生成的DataFrame会自动将不存在的q1/q2列填充为NaN,列表、字典类型的字段(options、test_dict)会保留原类型存储,公共字段summary和viewer rating会在所有行复用,完全符合你给出的目标结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:57:04