python:列表+字典+向json⽂件追加数据
在关于图像的深度学习中,我们有图像和对应的标签。通常我们将图像名字和对应的标签写在json⽂件中,通过字典的⽅式进⾏编码。我们可以看⼀个例⼦:
[{“disease_class”: 1, “image_id”: “1.jpg”},
{“disease_class”: 2, “image_id”: “2.jpg”},
{“disease_class”: 3, “image_id”: “3.jpg”}]
注意到这个最外边是⼀个⽅括号,也就是说整个⽂件是⼀个列表的格式。
列表由很多的很多字典组成,每⼀个字典都包含两个键值对,⼀个是图⽚的标签,也就是groundtruth,这⾥就是disease_class,另⼀个就是图像的名字,这⾥就是image_id。一键转换
这样写是有好处的,我这⾥就不说是什么好处的。
本⽂⾸先给出如何读取这样的⼀个json⽂件:
with open(validate_path, 'r') as load_f:
load_dict = json.load(load_f)
num_image = len(load_dict)网页设计新闻
python解析json文件for image in range(num_image):
index = load_dict[image]["disease_class"]
find 递归查子目录path = load_dict[image]['image_id']
freedom女王控制image_data = cv_imread(path)
主要⽤到了⼀个python库中函数:json 的json.load函数。然后采⽤列表的⽅式读取每⼀个图像的序列号,再进⼀步依据字典的键值对⽅式来索引具体的键值。
那么怎样才能创建这样的josn⽂件呢(从这个例⼦可以看书,并不是所有的json⽂件都是⼀样的,josn⽂件有它⾃⼰的组合⽅式,看官可以查看其它⼈的博客就知道,但愿你看完这篇⽂章之后能够到你想要的json⽂件格式的制作)
上⾯说到,⾸先是列表,列表中是⼀个个的字典。
直接先上代码:
image_aug = [] # 先创建⼀个列表
image_path = 'AgriculturalDisease_trainingset'
root = os.getcwd()
path = os.path.join(root, 'new_train', 'new_train_labels.json')
# print(path)
with open(path, 'r') as f:
load_dict = json.load(f)
num_images = len(load_dict)
for image in range(num_images):
index = load_dict[image]["disease_class"]
path = load_dict[image]["image_id"]
image_dict = {"disease_class":index, "image_id":path}
image_aug.append(image_dict) # 依据列表的append对⽂件进⾏追加
with open('new.json', 'w', encoding='utf-8') as file:
json.dump(image_aug, file, ensure_ascii=False)
# 最后根据json的dump将上⾯的列表写⼊⽂件,得到最终的json⽂件puppeteer
总结为以下三步:
1)先创建⼀个列表
2)依据列表的append对⽂件进⾏追加
3)最后根据json的dump将上⾯的列表写⼊⽂件,得到最终的json⽂件
写到这⾥⼤家应该是⽐较理解怎么对json⽂件进⾏追加的吧。
实际上是利⽤列表进⾏追加。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论