Prendi il valore da un dizionario nidificato con l'aiuto di percorso della chiave, qui è la dict
:valore dizionario nidificate dal percorso della chiave
json = {
"app": {
"Garden": {
"Flowers": {
"Red flower": "Rose",
"White Flower": "Jasmine",
"Yellow Flower": "Marigold"
}
},
"Fruits": {
"Yellow fruit": "Mango",
"Green fruit": "Guava",
"White Flower": "groovy"
},
"Trees": {
"label": {
"Yellow fruit": "Pumpkin",
"White Flower": "Bogan"
}
}
}
Il parametro di ingresso al metodo è il percorso della chiave con i puntini separati, da il percorso chiave = "app.Garden.Flowers.white Flower" deve stampare "Jasmine". Il mio codice finora:
import json
with open('data.json') as data_file:
j = json.load(data_file)
def find(element, JSON):
paths = element.split(".")
# print JSON[paths[0]][paths[1]][paths[2]][paths[3]]
for i in range(0,len(paths)):
data = JSON[paths[i]]
# data = data[paths[i+1]]
print data
find('app.Garden.Flowers.White Flower',j)
Invece di definire la propria funzione di elemento getter utilizzando lambda, è possibile importare 'operator' e usare' operator.getitem'. –