J'ai un dict imbriqué que je construis sur une période de plusieurs processus. Pour construire le dict, je le passe à certaines fonctions, le remplis et le renvoie. Avec une seule entrée, le dict est construit comme tel:
{K: {K: V, K: V}}
Pour un exemple proche du monde réel:
for k,v in mydict.items():
print(mydict[k])
Si je print (mydict) je vois exactement comme je m'y attendais. Cependant, lorsque j'essaye de parcourir le dict, je ne parviens pas à obtenir les valeurs de mon dict imbriqué en utilisant ce qui suit:
for k,v in mydict.items():
print(mydict[k][text])
J'obtiens à la place l'erreur:
NameError: le nom 'texte' n'est pas défini
Mais quand j'effectue les opérations suivantes, cela fonctionne:
mydict = {"www.google.com": {"date":"1/1/19","text":"moo"},
"www.yahoo.com": {"date":"1/2/19","text":"woof"}}
On me présente des résultats tels que:
{"date": "1/1/19", "text": "moo"}
{"date": "1/2/19", "text ":" woof "}
Qu'est-ce que je fais de mal?
3 Réponses :
Vous devez citer le "texte" sinon il est pris comme nom de variable
print(mydict[k]['text'])
Vous devez utiliser "text" au lieu de text .
moo woof
mydict = {"www.google.com":{"date":"1/1/19","text":"moo"},
"www.yahoo.com":{"date":"1/2/19","text":"woof"}}
for k,v in mydict.items():
print(mydict[k]["text"])
Vous avez manqué les guillemets " dans votre texte : voici le bon
for k,v in mydict.items():
print(mydict[k]["text"])
Il ne manque pas de guillemets doubles. Il manque une citation en général, qu'elle soit simple ou double.
Oh mec vivant! C'est toujours si évident une fois que quelqu'un le souligne. Merci