2016-08-08 1 views
0

['text']というキーを見つけて、親キーをネストから取得する方法を理解しようとしています。これは3つ目のキーで、他のタグはすべて同じです。パス内の親を返し、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"キーの下にあるすべての値をプリントアウトしたいだけですか?もしそうなら、「テキスト」キーは常に4番目のネストされたキーですか? – 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'):'という行を追加して、3番目のレベルの他のタグを除外しました。 – Matts

関連する問題