最佳答案
是否有更多可读的方法来检查是否有一个关键隐藏在一个字典存在,而不检查每一级独立?
假设我需要在一个隐藏的对象中得到这个值(例子取自 Wikidata) :
x = s['mainsnak']['datavalue']['value']['numeric-id']
为了确保不会以运行时错误结束,有必要像下面这样检查每个级别:
if 'mainsnak' in s and 'datavalue' in s['mainsnak'] and 'value' in s['mainsnak']['datavalue'] and 'nurmeric-id' in s['mainsnak']['datavalue']['value']:
x = s['mainsnak']['datavalue']['value']['numeric-id']
我能想到的解决这个问题的另一种方法是把它包装成一个 try catch
结构,对于这样一个简单的任务,我觉得这个结构也相当笨拙。
我在寻找这样的东西:
x = exists(s['mainsnak']['datavalue']['value']['numeric-id'])
如果所有级别都存在,返回 True
。