Как получить доступ к многоуровневому dict python с помощью итераторов? - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть этот dict / json:

data={
"paraview": {
    "3.5": {
        "image": "/data/singularity/containers/paraview_5.5.2.simg",
        "recipe": "/data/singularity/YAJE/yaje/paraview/Singularity.5.5.2",
        "source": "packet"
    },
    "5.5.2": {
        "image": "/data/singularity/containers/paraview_5.5.2.simg",
        "recipe": "/data/singularity/YAJE/yaje/paraview/Singularity.5.5.2",
        "source": "packet"
    }
  }
}

Я могу найти значение с помощью:

app ="paraview"
version= "3.5"

if app in data:
   if version in data[app]:
       print("ubucacion: {}".format(data[app][version]['image']))

вывод:

ubucacion: /data/singularity/containers/paraview_5.5.2.simg

Но, как я могу сделать это с итерациями для очень больших диктов?

1 Ответ

0 голосов
/ 10 сентября 2018

Вы имеете в виду:

for i in [(app,version), (app,version)]:
    if i[0] in data and i[1] in data[i[0]]: # secondhalf of and statement won't run if first half is false
        print("ubucacion: {}".format(data[i[0]][i[1]]['image']))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...