2016-08-21 60 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')
  • '年齡'[MAX](值爲'17')
  • 「年齡」 [評分](該值是「0.983185)

我試過以下,但它似乎並沒有返回我所期待的:在

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

任何建議我如何訪問和打印我感興趣的值?

回答

2

你嵌套字典和列表:

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"]) 

性別字典是這樣的:

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

所以我們使用鍵盤「性別」「分數」得到值,年齡字典看起來像:

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

我們再一次只是用鑰匙「MAX」搶值「分數」

+1

完美。非常感謝。感謝解釋以及答案 – thefragileomen

+0

不用擔心,不用客氣。 –

1

這是一個有點複雜字典。這是你如何提取所需值:

d是你的字典:

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