2013-08-23 57 views
0

我可以通過使用p['cover']['source']來訪問我的django python shell中的字典。我也可以使用點符號訪問模板中的「源」,但是,當我嘗試在我的視圖中訪問p['cover']['source']時,我得到一個keyError錯誤。我能夠使用p.get('cover','none')訪問'封面',但我需要得到p['cover']['source'],我不知道如何訪問此內容。請幫忙:-)在Django中訪問字典的問題

views.py 
    image_table = [] 
     for n in likes: 
     link = n.facebook_id 
     p = graph.get_object(str(link)) 
     #image = p['cover']['source'] //This returns KeyError 
     #image = p['cover'][0]['source'] //This returns KeyError = 0 
     image = p.get('cover','none')//This only returns the first dictionary 
     image_table.append(image) 
+1

您無法訪問不存在的內容。找出爲什麼它沒有被設置在任何它應該是。 –

+0

但我的困惑是因爲它在那裏。例如,如果我訪問p ['cover']就會失敗,但是p.get('cover','none')起作用。此外,如果我可以從模板訪問字典,但不是從視圖。這對我沒有意義,所以我很難找到它的設置 – Milkman777

+0

可能它不是一本字典,而是一個類似字典的對象。 –

回答

0

有些用戶可能沒有封面圖片,造成KeyError當您訪問的字典。使用try/except塊來防止錯誤:

try: 
    image = p['cover']['source'] 
except KeyError: 
    pass # or other alternative for those without cover picture