将数据集中csv文件转换为json文件
`# -*- coding:utf-8 -*-
import numpy as np
from os import listdir
from os.path import isfile, isdir, join
import os
import json
import random
import re
data_path = '/data2/quxue/cub/images/'
savedir = '/data2/quxue/cub/'
dataset_list = ['train','val','test']
label_names = [f for f in listdir(data_path) if isdir(join(data_path, f))]
label_names.sort()
for dataset in dataset_list:
image_names = []
image_labels = []
with open(savedir+dataset+'.csv','r',encoding='UTF-8') as f:
lines=f.readlines()
for i in range(len(lines)):
if i!=0:
l=lines[i].strip("\n").split(",")
image_names.append(data_path+l[1]+'/'+l[0])
image_labels.append(l[1][:3])
fo = open(savedir + dataset + '.json', 'w')
fo.write('{"label_names": [')
fo.writelines(['"%s",' % item for item in label_names])
fo.writelines(label_names)
fo.seek(0, os.SEEK_END)
fo.seek(fo.tell()-1, os.SEEK_SET)
fo.write('],')
fo.write('"image_names": [')
fo.writelines(['"%s",' % item for item in image_names])
fo.seek(0, os.SEEK_END)
fo.seek(fo.tell()-1, os.SEEK_SET)
fo.write('],')
fo.write('"image_labels": [')
fo.writelines(['%d,' % int(item) for item in image_labels])
fo.seek(0, os.SEEK_END)
fo.seek(fo.tell()-1, os.SEEK_SET)
fo.write(']}')
#print("%s -OK" %dataset)