【发布时间】:2019-04-01 17:55:19
【问题描述】:
我有一个这样的 json,取自 vgg 图像注释器。
"5213c8b86f225.image.jpg40172": {
"filename": "5213c8b86f225.image.jpg",
"regions": [{(...)},
{(...)}]
}
我想将此 json 转换为掩码 rcnn 的格式,如下所示:
"5213c8b86f225.image.jpg40172":{
"filename":"24631331976_defa3bb61f_k.jpg",
"regions":{
"0":{(...)},
"1":{(...)},
(...)}
}
我尝试了以下代码:
with open(val_json, 'r+') as f:
vgg_json = json.load(f)
mask_json =vgg_json
for key in vgg_json:
i=0
for shape_attr in vgg_json[key]['regions']:
mask_json[key]['regions'][str(i)]=shape_attr
i+=1
f.seek(0)
json.dump(mask_json, f, indent=4)
f.truncate()
它不起作用并给我以下错误:
TypeError: list indices must be integers or slices, not str
整个json文件在这里: https://github.com/fabioaraujopt/maskrcnn_custom/blob/master/via_region_data.json
抱歉,“嘿”只是我的测试没有意识到! 真正的价值现在改变了!
【问题讨论】:
-
hey是什么? -
mask_json和vgg_json引用同一个字典。 -
对不起,'hey'只是为了检查错误是否相同,代码未修复,是str(i),无论如何都会给出相同的错误。