import json
import os
def fixJSON():
root_path = "json、图片都存放在一个文件夹下,这里填该文件夹路径"
filelist = os.listdir(root_path)
count = 1
for file in filelist:
if file.find(".json") != -1: # 对每个json文件
# 打印当前进度
print("------", count)
count += 1
# 读取json、处理
filepath = os.path.join(root_path, file)
with open(filepath, 'r', encoding='utf8')as fp:
json_data = json.load(fp) # 导入json
imgpath = json_data["imagePath"]
imgpath2 = imgpath[len(imgpath)-8: len(imgpath)] # 截取最后的 xxxx.jpg 这样共8位
fileid = imgpath2[0:4] # 截取 xxxx 序号,图片文件同名
try:
imgname = [f for f in filelist if (fileid in f and ".json" not in f)][0] # 寻找对应图片文件
except Exception as e:
# 这里报错是针对于json记录里的图片id对应的图片不存在
# 最好自己决定一下是json记录错误还是图片id错误,进行针对性修改
print("ERROR file =", file, "fileid =", fileid)
if imgpath2 != imgname:
# 打印后缀不匹配问题
print(imgpath2, imgname)
json_data["imagePath"] = imgname # 更新
# 覆盖原内容
with open(filepath, 'w', encoding='utf8')as fp:
json.dump(json_data, fp)
# 调用
fixJSON()
maskrcnn标注数据集json文件里imagePath字段对应图片后缀错误修正代码
最新推荐文章于 2022-11-24 09:37:56 发布