У меня есть этот 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
Но как я могу сделать это с помощью iteratos для очень больших dicts?
@JonasWolff, мне нужно сделать один запрос с некоторыми фиксированными значениями, но я боюсь, что если словарь сильно вырастет, у него возникнут проблемы со временем ответа. вот почему я подумал, что должен сделать что-то более эффективное
словарь использует хеши, поэтому я не думаю, что размер является реальной проблемой
ты имеешь ввиду:
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']))
я не уверен, что вы имеете в виду, я был бы рад помочь, вы хотите пройти через несколько quaries