2017-01-12 3 views
-1
{"python":[ 
    {"name":"achname","points":9999, "description":"The best achievement ever"} 
]} 

Je veux supprimer la réalisation achname de la liste - mais je ne connais pas le nom de la catégorie (python). La réalisation sera toujours un niveau plus bas, mais peut-être dans une autre catégorie que python. Comment puis-je faire ceci? Qu'en est-il de del, et de la méthode .keys()?élément de suppression dans le dictionnaire un niveau plus bas

+2

Vous devrez rechercher dans toutes les clés du dictionnaire externe, puis à travers chaque valeur de liste jusqu'à ce que vous en trouviez une avec le bon nom. Voir par exemple https://docs.python.org/3/tutorial/datastructures.html pour travailler avec des dicts et des listes. – jonrsharpe

Répondre

0

Je ne sais pas comment votre dictionnaire va être structuré, mais en supposant que « nom » sera toujours référence à la réalisation que vous souhaitez supprimer:

for key in foo.keys(): 
    if "name" in foo[key]: 
     del foo[key]["name"] 

Malheureusement, vous devez itérer sur tous les haut niveau élément dans le dictionnaire, pour parcourir tous les sous-dictionnaires.