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

如何用Python循环修改JSON外层键名,批量生成多份对应文件

JSON外层键批量修改实现方案

原有代码错误原因

  • dict.items()返回的是只读的键值对元组,直接修改元组的第一个元素不会改变原字典的键
  • 每次循环都读写同一个test.json,无法生成5份独立文件
  • 存在2处语法错误:OrderedDict拼写错误、for循环行末尾缺少冒号
  • 未删除原外层键fruits,即使修改成功也会出现新旧键共存的问题

额外注意:你的原始JSON里"fruit": "apple",后面多了一个尾随逗号,部分版本的Python json模块解析会报错,建议先删掉这个多余逗号。

修正后实现代码

import json
from collections import OrderedDict

# 仅读取一次原始文件,减少重复IO
origin_file = "test.json"
with open(origin_file, "r", encoding="utf-8") as f:
    origin_data = json.load(f, object_pairs_hook=OrderedDict)
# 提取固定不变的内层字典内容
inner_content = origin_data["fruits"]

for i in range(1, 6):
    # 构造新的外层键
    new_key = f"fruits{i}"
    # 生成新的字典结构
    new_data = OrderedDict([(new_key, inner_content)])
    # 按序号生成不同的输出文件名,避免覆盖
    output_file = f"test_{i}.json"
    with open(output_file, "w", encoding="utf-8") as f:
        # indent=2保持和原始JSON一致的缩进格式
        json.dump(new_data, f, indent=2, ensure_ascii=False)

运行后会在当前目录生成test_1.json到test_5.json共5个文件,每个文件的外层键对应fruits1到fruits5,内层内容和原始JSON完全一致。如果你需要自定义输出文件名规则,直接修改output_file的赋值逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:27:00