maskrcnn标注数据集json文件里imagePath字段对应图片后缀错误修正代码

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值