2016-08-08 5 views
0

[ 'text']라는 키를 찾은 다음 둥지에서 상위 키를 가져 오는 방법을 알아 내려고합니다. 세 번째 키는 다른 태그이고 다른 태그는 모두 동일합니다.경로에서 부모를 반환하고 JSON에서 키를 찾는 방법

def pretty(d, indent=0): 
    for key, value in d.items(): 
     print('\t' * indent + str(key)) 
     if isinstance(value, dict): 
      pretty(value, indent+1) 
     else: 
      print('\t' * (indent+1) + str(value)) 
+0

최종 출력물을 원하는대로 명확히 할 수 있습니까? – Karin

+0

최종 출력은 유사한 파일의 [ 'text'] 키 값입니다. 가장 큰 문제점은 깊이 중첩되어있어 찾기가 어렵다는 점입니다. – Matts

+0

중첩 된 사전의 "text"키 아래에있는 모든 값을 인쇄하고 싶습니까? 그렇다면 "텍스트"키가 항상 네 번째 중첩 키입니까? – Karin

답변

0

난 아직도이 경우 완전히 확실하지 않다 : 들여 쓰기를 찾을 수

def printKeysValues(d): 
     for k, v in d.items(): 
     if isinstance(v, dict): 
      printKeysValues(v) 
     else: 
      print("{0} : {1}".format(k, v)) 

그리고이 기능 :

html_data = data['data']['document_data']['dataItem-ihmty5rw']['text'] 

나는 열쇠를 얻기 위해이 기능을 사용하고 있습니다 당신이 원했던 것입니다.하지만 항목 별 텍스트를 원한다면 제대로 작동 할 것입니다.

# a dictionary of item string to dictionary containing a "text" key 
item_map = data['data']['document_data'] 

for item_string, item_map in item_map.iteritems(): 
    print item_string # the item string (e.g. 'dataItem-ihmty5rw') 
    print item_map['text'] # this is the text associated with the item string 
+0

감사 카린, 작동합니다. print 문 앞에'item_map.get ('text') :'를 추가하여 세 번째 수준의 다른 태그를 필터링합니다. – Matts

관련 문제