如何解决将每个文件存储在基于子文件夹的子列表中
有一个list_1
,其中包含许多子文件夹的路径。
list_1
给出:
['C:\\Users\\user\\Downloads\\problem00001\\ground_truth.json','C:\\Users\\user\\Downloads\\problem00002\\ground_truth.json','C:\\Users\\user\\Downloads\\problem00003\\ground_truth.json']
目的
在gt2
列表中,应该有json
中problem1
文件的子列表。然后是problem2
中json的另一个子列表,依此类推。
下面的尝试代码将所有json文件存储在gt2
列表中。
gt2=[]
for k in list_1:
with open(k,'r') as f:
gt = {}
for i in json.load(f)['ground_truth']:
gt[i['unknown-text']] = i['true-author']
gt2.append(gt)
最终结果应为:在gt2
列表中具有3个子列表:
problem1
中的文件之一,
另一个来自problem2
和
另一个来自problem3
解决方法
假设列表已排序,请使用enumerate
上的list_1
和make gt2
作为命令来存储json数据。
gt2 = {}
for k,v in enumerate(list_1):
gt = {}
with open(v,'r') as f:
for i in json.load(f):
gt[i['unknown-text']] = i['true-author']
gt2[f'problem{k + 1}'] = gt
# access values of dict here
print(gt2['problem1'])
修改
gt2 = []
for fi in list_1:
with open(fi,'r') as f:
gt2.append([
{i['unknown-text']: i['true-author']} for i in json.load(f)
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。