File size: 1,818 Bytes
1c980b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os
import json

def replace_underscores_in_task_type(data):
    """处理JSON数据,替换task_type中的下划线"""
    for item in data:
        if isinstance(item, dict) and 'task_type' in item:
            original = item['task_type']
            if isinstance(original, str):
                item['task_type'] = original.replace('_', '-')
    return data

def process_json_file(file_path):
    """处理单个JSON文件"""
    try:
        with open(file_path, 'r+', encoding='utf-8') as f:
            # 读取并验证数据格式
            data = json.load(f)
            if not isinstance(data, list):
                print(f" 已跳过非数组文件:{file_path}")
                return
            
            # 处理数据并写回
            modified_data = replace_underscores_in_task_type(data)
            f.seek(0)
            json.dump(modified_data, f, indent=4, ensure_ascii=False)
            f.truncate()
        
        print(f" 成功处理:{os.path.basename(file_path)}")

    except Exception as e:
        print(f" 处理失败 [{os.path.basename(file_path)}]:{str(e)}")

def process_directory(target_dir):
    """处理目录下的JSON文件(不包含子目录)"""
    for file in os.listdir(target_dir):
        if file.lower().endswith('.json'):
            file_path = os.path.join(target_dir, file)
            if os.path.isfile(file_path):
                process_json_file(file_path)

if __name__ == '__main__':
    input_directory = "/mnt/data/users/zys/proj/vlm_reasoning/utils/json"  # 修改为你的目录路径
    
    if os.path.isdir(input_directory):
        print(f" 正在处理目录:{input_directory}")
        process_directory(input_directory)
        print(" 处理完成")
    else:
        print(f" 目录不存在:{input_directory}")