今天写了一个脚本,主要是关于字典的操作,写得比较笨拙还慢,在这里特此记录一下。
问题是这样的:
我有一个json文件,内容是一个字典,它长这样:
{
“01_University_Canteen/IMG_01_01.jpg”:XXX
“01_University_Canteen/IMG_01_02.jpg”:XXX
…
“11_Shenzhen_Library/IMG_11_01.jpg”:XXX
…
“13_University_Playground/IMG_13_30.jpg”:XXX
}
现在问题是,我想把01-10放在一个json文件中,11-13放到一个json文件中。
我的脚本是这样解决的:
"""本脚本用来将train集分成新的train和test, train为1-10的图片,test为11-13的图片,这样方便后面的实验"""
import json
# TODO:在分割vehicle类时记得修改person为vehicle
annopath = "../data/PANDA_IMAGE_P/image_annos/person_bbox_train.json"
# TODO:需要手动生成test_path的json文件
train_path = "../data/PANDA_IMAGE_P/image_annos/person_bbox_train_C.json"
test_path = "../data/PANDA_IMAGE_P/image_annos/person_bbox_test_C.json"
train_dict = {}
test_dict = {}
with open(annopath, 'r') as f:
data = json.load(f)
for key, values in data.items():
image_num = int(key[:2])
if image_num >= 11:
test_dict[key] = values
else:
train_dict[key] = values
with open(test_path, 'w') as f:
json.dump(test_dict, f, indent=4)
with open(train_path, 'w') as f:
json.dump(train_dict, f, indent=4)