2017-10-03 2 views
0

이것은 바보가 될 것입니다. 내가 할 수있는 PLIST lib 디렉토리를 사용하여plistlib를 사용하여 그 뒤에 다른 중첩 키를 사용하여 1 키를 액세스하십시오.

<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> 

:

내가 아래 PLIST에서 "YES"싶어

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

I 것이다 "YES"얻을 "치료를하지 말라"하지만, 그 표준 목록이 아니기 때문에 [0]

을 사용하여 액세스 할 수 없기 때문에 for 루프를 사용하지만 "YES"를 얻을 수는 있지만이 작업을 훨씬 더 깨끗하게해야한다고 생각합니다.

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

print x 
'YES' 

답변

1

이 데이터 구조는 당신의 예에서와 같이 정확하지 않은 경우 당신이합니다 (DICT에 하나 이상의 키가 어떻게이 있다면?) 일이 원하는 것을 조금 불분명하지만 내 생각 엔 당신이 원하는 것입니다 dict (또는 dict-like 오브젝트, 나는 확실하지 않다)의 .keys() 메소드를 보면 plistlib에서 빠져 나온다.

+0

당신이 이깁니다! 그 슬픈 나는 한 번에 .dict()를 시도했다 : (너무 가까웠다.) 다행히도 이러한 plists에는 거기에 구조화 된 방법에 기반한 여분의 키가 없다. 도움과 신속한 대응에 감사드립니다! – Dippy

관련 문제