修改json内容
程序员文章站
2022-07-12 15:10:57
...
修改json内容
1. 问题描述
当时用labelme标注图片后,又对文件进行了重命名,发现imagePath
和重命名的文件名不一致,这样在制作coco数据集时会出现报错的情况,因此需要对imagePath
也进行更新。
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文件里有换行符,更新后没有了影响观看,但是不影响正常使用。
上一篇: Groovy基本使用(2):基本语法
推荐阅读