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

如何用Python批量修改JSON嵌套列表中的FactionID值?

批量修改.git.json文件中嵌套列表的FactionID值

问题排查

  • 你用print(data['Creature List']['value']['FactionID']['value'])报错的核心原因:data['Creature List']['value']是列表类型,不是字典,必须遍历列表里的每个生物条目才能访问FactionID。
  • 代码循环逻辑错误:for creature in value:中的value是'Creature List'对应的字典(包含type和value键),应该遍历value['value']这个实际的生物列表。
  • 文件写入时机不合理:每次修改一个条目就写文件,既低效又可能导致数据不一致,应该等所有条目修改完成后一次性写入。

修正后的代码

import os
import json

directory = "你的目标目录路径"  # 替换成你要处理的实际目录

for filename in os.listdir(directory):
    if filename.endswith('.git.json'):
        file_path = os.path.join(directory, filename)
        try:
            # 读取JSON文件
            with open(file_path, 'r') as f:
                data = json.load(f)
            
            # 安全获取Creature List下的生物列表,避免键不存在报错
            creature_list = data.get('Creature List', {}).get('value', [])
            if not creature_list:
                print(f"{filename}里没有找到有效的Creature List")
                continue
            
            # 遍历每个生物条目,修改FactionID的值
            modified = False
            for creature in creature_list:
                # 确保FactionID结构正确
                if 'FactionID' in creature and isinstance(creature['FactionID'], dict) and 'value' in creature['FactionID']:
                    creature['FactionID']['value'] += 46
                    modified = True
                    print(f"{filename} - 修改后FactionID值: {creature['FactionID']['value']}")
            
            # 只有实际修改过内容才写入文件
            if modified:
                with open(file_path, 'w') as f:
                    json.dump(data, f, indent=4)
                print(f"已保存修改: {filename}")

        except (json.JSONDecodeError, FileNotFoundError, PermissionError) as e:
            print(f"处理{filename}出错: {e}")

关键修改说明

  • 用data.get()方法安全获取嵌套结构,避免因键不存在导致的崩溃。
  • 直接遍历creature_list(即'Creature List'下的value列表),每个元素是包含FactionID的字典。
  • 增加modified标记,只有实际修改了内容才写入文件,减少不必要的磁盘操作。
  • 扩展异常捕获范围,处理权限不足等常见问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:55:22