欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

修改json内容

程序员文章站 2022-07-12 15:10:57
...

修改json内容

1. 问题描述

当时用labelme标注图片后,又对文件进行了重命名,发现imagePath和重命名的文件名不一致,这样在制作coco数据集时会出现报错的情况,因此需要对imagePath也进行更新。
修改json内容

图1. 问题图片.png

2.程序操作

#导入程序包
import os
import json
#定位json所在的文件夹
file_json='D:\\LocalGithub\\mmdetection2.0\\data\\dataB\\coco\\test2014' 
#定义操作函数
def change_json(path):
    files=os.listdir(path)
    #os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
    for file in files: 
        dir=os.path.join(path,file)
        # os.path.join(),将join()里面得参数拼接成一个完整得路径。
        # 检查是否为文件夹,如果是,则递归
        if os.path.isdir(dir):
            chang_json(dir)
            continue
        file_split=file.split('.')
        #file.split将file列表数据以"."分割,并赋值给file_split
        if file_split[-1] == "json":
            str="".join(file_split[0])+".jpg" # 定义要更改的文件名
            with open(path+'\\'+file,'rb') as load_f: 
            #定义为只读模式,并定义名称为f
                params = json.load(load_f)
                #加载json文件中的内容给params
                load_f.close() # 关闭文件
            with open(path+'\\'+file,'w') as dump_f:
            #定义为写入模式,并定义名称为f
                print(str) # 查看要写入的名称
                params['imagePath'] = str # 更改参数
                json.dump(params,dump_f) # 将params写入文件
                dump_f.close() #关闭文件

到此文件就更新完成了,只不过原先json文件里有换行符,更新后没有了影响观看,但是不影响正常使用。

相关标签: json python