【发布时间】:2013-02-08 19:31:39
【问题描述】:
我有一个深度嵌套的字典(从 json 解码,从 instagram api 解码)。 我最初的代码是这样的:
caption = post['caption']['text']
但是如果 'caption' 键或 'text' 键不存在,则会引发 NoneType 或 KeyError 错误。
所以我想出了这个:
caption = post.get('caption', {}).get("text")
哪个有效,但我不确定它的风格。例如,如果我将此技术应用于我试图检索的更深层次的嵌套属性之一,它看起来很丑:
image_url = post.get('images',{}).get('standard_resolution',{}).get('url')
有没有更好、更 Pythonic 的方式来写这个?我的目标是检索数据(如果存在),但不阻止执行(如果不存在)。
谢谢!
【问题讨论】:
-
为什么不能只捕获异常?
-
我可以。我猜是因为我要拉~7 个键,我不想尝试/除了 7 次。
标签: python dictionary styles nonetype keyerror