2017-10-03 5 views
0

Cela va être un stupide.L'utilisation de plistlib pour accéder à une clé sans les autres touches imbriquées après cela

Je veux obtenir "OUI" de la Plist ci-dessous:

<key>Sample</key> 
    <dict> 
     <key>No</key> 
     <dict> 
      <key>Still No</key> 
      <dict> 
       <key>YES</key> 
       <array> 
        <dict> 
         <key>Dont care</key> 
        </dict> 
      </dict> 
     </dict> 
    </dict> 

utilisant plist lib je peux faire:

import plistlib as pl 
pplist = pl.readPlist(plistPath) 
pplist['Sample']['No']['Still No'] 
{'YES': {'DontCare'}} 

Je vais obtenir "OUI" et "Dont soins", mais en utilisant une boucle for, même si je peux obtenir juste "OUI", mais je pense qu'il devrait y avoir une façon beaucoup plus propre de le faire alors.

for x in pplist['Sample']['No']['Still No']: 
    thisIsYES = x 
    break 

print x 
'YES' 

Répondre

1

Il est un peu difficile de ce que vous voulez arriver si la structure de données ne sont pas exactement comme dans votre exemple (s'il y a plus d'une clé dans la dict?), Mais je pense que vous voulez regardez la méthode .keys() de la dict (ou un objet semblable à un dict, je ne suis pas sûr) que vous sortez de plistlib.

+0

Vous gagnez! C'est triste, j'ai essayé .dict() à un moment :(si près.Pour ces plistes, il n'y aura pas de clés supplémentaires sur la façon dont il est structuré.Merci pour votre aide et une réponse rapide! – Dippy