在Django中访问字典时出现问题

时间:2013-08-23 22:43:30

标签: python django dictionary

我可以使用p['cover']['source']在我的django python shell中访问字典。我也可以使用点表示法访问模板中的“source”,但是,当我在视图中尝试访问p['cover']['source']时,我得到了一个keyError。我可以使用p.get('cover','none')访问“封面”,但我需要获取p['cover']['source']而我不知道如何访问它。请帮忙: - )

  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 :(得分:0)

某些用户可能没有封面图片,导致访问字典时出现KeyError。使用try / except块来防止错误:

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