2016-08-21 2 views
1

でネストされた辞書内の値の印刷: - 私は何をしたいのか私は辞書型の変数は、以下の値が含まれている私のPython 2.xのスクリプトに戻ってきたPython 2.xの

{u'image': u'/users/me/Desktop/12345_507630509400555_869403269181768452_n.jpg', u'faces': [{u'gender': {u'gender': u'FEMALE', u'score': 0.731059}, u'age': {u'max': 17, u'score': 0.983185}, u'face_location': {u'width': 102, u'top': 102, u'left': 426, u'height': 106}}]} 

する抽出物であります与えられたキーに次の値: -

  • '性別'( '女性' という値)
  • 'スコア'(値が '0.731059' である)
  • の年齢 '[最大](値は「17」である)
  • の年齢 '[スコア](値が「0.983185である)

私は以下しようとしたが、私が探しています何を返していないようです:

 if key == 'faces':      
      for k, v in key:      
       print(k['gender'], k['max'], k['age'][0], k['age'][1])  

上の任意の提案私が興味を持っている価値観にアクセスして印刷する方法は?

答えて

2

あなたがdictsとリストを入れ子になっています

d = {u'image': u'/users/me/Desktop/12345_507630509400555_869403269181768452_n.jpg', u'faces': [{u'gender': {u'gender': u'FEMALE', u'score': 0.731059}, u'age': {u'max': 17, u'score': 0.983185}, u'face_location': {u'width': 102, u'top': 102, u'left': 426, u'height': 106}}]} 

# iterate over the list of dict(s) 
for dct in d["faces"]: 
    gender, age = dct['gender'], dct["age"] 
    print(gender["gender"], gender["score"], age["max"], age["score"]) 

のような男女のdictに見える:私たちが取得するキー"性別""スコア"を使用

{u'gender': u'FEMALE', u'score': 0.731059} 

ので、年齢は次のようになります。

{u'max': 17, u'score': 0.983185} 

は再び我々だけ「最大」をキーを使用して値をつかむには少し複雑なdictのです

+1

パーフェクト。どうもありがとう。ありがとうございます。説明だけでなく、回答 – thefragileomen

+0

ご心配なく、よろしくお願いします。 –

1

「スコア」。これは、あなたが希望する値を抽出する方法である:

dがあなたのdictとする:

key = 'faces' 
inner = d[key][0] 
print(inner['gender']['gender'], inner['gender']['score'], inner['age']['max'], inner['age']['score']) 

出力:

FEMALE 0.731059 17 0.983185 
関連する問題