将数据集中csv文件转换为json文件

时间:2025-04-15 18:09:16
`# -*- 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)