Я создал файл .json, в котором хранятся мои типы наборов данных и пути к каталогам. Я могу получить информацию для каждого типа набора данных, но я не знаю, как попытаться извлечь элементы, связанные с набором данных.
В настоящее время я использую Python 3.5 и использую встроенный импорт 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 (например, для каждого «Vid4_GT_..», который находится в json, он будет извлекать и сохранять значения как переменные.) есть ли способ «зациклить» или повторить метод?
Таким образом, каждый ключ имеет строку, декодированную 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"])
Спасибо! это решило проблему с вложенным json!