我创建了一个.json文件,用于存储我的数据集类型和目录路径。我能够提取每种数据集类型的信息,但是我不知道如何尝试提取与数据集关联的元素。
我当前在使用Python 3.5,并且正在使用内置的import json
这是我用来编写.json文件的代码示例
#All Vid4 Dataset paths with JSON
d = {}
d ["Vid4_GT_Calendar"] ='{"dataset": "Vid4", ' \
'"Type": "GT", ' \
'"name": "Calendar", ' \
'"path": "C:Dataset_GT\\GroundTruth\\Vid4\\calendar" ' \
'}'
d ["Vid4_GT_City"] ='{"dataset": "Vid4", ' \
'"Type": "GT", ' \
'"name": "City", ' \
'"path": "C:Dataset_GT\\GroundTruth\\Vid4\\city" ' \
'}'
d ["Vid4_GT_Foliage"] ='{"dataset": "Vid4", ' \
'"Type": "GT", ' \
'"name": "Foliage", ' \
'"path": "C:Dataset_GT\\GroundTruth\\Vid4\\foliage" ' \
'}'
d ["Vid4_GT_Walk"] ='{"dataset": "Vid4", ' \
'"Type": "GT", ' \
'"name": "Walk", ' \
'"path": "C:Dataset_GT\\GroundTruth\\Vid4\\walk" ' \
'}'
使用下面的代码,我可以将信息隔离为一种数据集类型。
#Reads the json
with open("datasetdir.json","r") as f:
data= f.read()
#Decode the json file
dsjson= json.loads(data)
使用print(dsjson["Vid4_GT_City"])
可以得到读为{"dataset": "Vid4", "Type": "GT", "name": "City", "path": "C:Dataset_GT\GroundTruth\Vid4\city" }
的输出
如果要提取“数据集”,“类型”,“名称”和“路径”的值并将其保存为python变量,下一步该怎么做。 如果我尝试对.json中的所有项目执行此操作(例如,对json中的每个“ Vid4_GT_ ..”,它将提取值并将其保存为变量。)是否存在“循环”或复制方法?
答案 0 :(得分:0)
所以每个键都有一个json解码的字符串,怎么回事:
dsjson_city = json.loads(dsjson["Vid4_GT_City"])
print(dsjson_city["dataset"])
更通用:
for key in dsjson:
dsjson[key] = json.loads(dsjson[key])
print(dsjson[key]["dataset"])