当前位置: 首页 > news >正文

批量修改json文件中的标签

一、代码

import os
import json
import argparse
from pathlib import Pathdef modify_json_labels(input_dir, output_dir=None, label_value="book"):"""批量修改JSON文件中shapes下的label标签内容参数:input_dir (str): 输入JSON文件所在目录output_dir (str): 输出目录,默认为None(覆盖原文件)label_value (str): 要设置的label值,默认为"book""""# 确保输入目录存在if not os.path.exists(input_dir):raise FileNotFoundError(f"输入目录不存在: {input_dir}")# 如果未指定输出目录,使用输入目录(覆盖原文件)if output_dir is None:output_dir = input_direlse:# 确保输出目录存在os.makedirs(output_dir, exist_ok=True)# 获取所有JSON文件json_files = [f for f in os.listdir(input_dir) if f.endswith('.json')]if not json_files:print("未找到JSON文件")returnmodified_count = 0# 处理每个JSON文件for json_file in json_files:file_path = os.path.join(input_dir, json_file)output_path = os.path.join(output_dir, json_file)try:# 读取JSON文件with open(file_path, 'r', encoding='utf-8') as f:data = json.load(f)# 修改label标签modified = Falseif 'shapes' in data and isinstance(data['shapes'], list):for shape in data['shapes']:if 'label' in shape:shape['label'] = label_valuemodified = Trueif modified:# 写入修改后的JSONwith open(output_path, 'w', encoding='utf-8') as f:json.dump(data, f, ensure_ascii=False, indent=2)modified_count += 1print(f"已修改: {json_file}")else:print(f"未修改(未找到shapes/label): {json_file}")except Exception as e:print(f"处理文件 {json_file} 时出错: {str(e)}")print(f"处理完成。共修改 {modified_count} 个文件,总文件数: {len(json_files)}")if __name__ == "__main__":# 创建命令行参数解析器parser = argparse.ArgumentParser(description='批量修改JSON文件中shapes下的label标签内容')parser.add_argument('input_dir', help='输入JSON文件所在目录')parser.add_argument('-o', '--output_dir', help='输出目录,不指定则覆盖原文件')parser.add_argument('-l', '--label', default='book', help='要设置的label值,默认为book')# 解析命令行参数args = parser.parse_args()# 执行修改操作try:modify_json_labels(args.input_dir, args.output_dir, args.label)except Exception as e:print(f"程序执行出错: {str(e)}")    

二、使用说明

# 直接修改原文件

python json_label_modifier.py /path/to/json/files 

# 指定输出目录

python json_label_modifier.py /path/to/json/files -o /path/to/output

# 指定新的label值

python json_label_modifier.py /path/to/json/files -l new_label_value

http://www.xdnf.cn/news/383221.html

相关文章:

  • 【MCAL】TC397+EB-tresos之I2c配置实战(同步、异步)
  • 2025年客运从业资格证备考单选练习题
  • Wallcraft 3.53.0 | 提供高质量动态4D壁纸,解锁高级版,无广告干扰
  • 《Python星球日记》 第50天:深度学习概述与环境搭建
  • 数据治理框架在企业中的落地:从理念到实践
  • OSPF案例
  • 完整进行一次共线性分析
  • Java代理
  • Android开发-图像显示
  • 如何通过合法数据变现实现收入增长
  • LVGL对象的盒子模型和样式
  • Arduino 开源按键库大合集(单击/双击/长按实现)
  • VB与Excel无缝连接实现指南
  • 编译后的js文件如何跟进调试
  • OpenAI的商业化之路:从非营利到盈利的转型
  • IC ATE集成电路测试学习——开尔文连接
  • 最速下降法和梯度下降法的异同
  • python基础(十一)-逻辑运算符
  • nextjs 部署失败:cause: Error: unable to verify the first certificate
  • C语言加餐--一些关键字
  • 数字信号处理|| 离散系统的冲激响应和阶跃响应
  • 【Python训练营打卡】day21 @浙大疏锦行
  • 101alpha第九
  • 一、ArkTS语法学习
  • Qt 界面优化(QSS)
  • 【数据结构与算法】——图(二)
  • 《AI大模型应知应会100篇》第54篇:国产大模型API对比与使用指南
  • 【Redis】基础命令数据结构
  • Spring框架核心知识全解析:从基础到实战
  • [面试]SoC验证工程师面试常见问题(六)高速接口篇