检查是否存在嵌套属性

时间:2015-04-24 19:12:53

标签: python python-2.7 data-structures

我有一个嵌套的OrderedDict,我想从中提取一个值。但在我提取该值之前,我必须确保存在一长串属性,并且它们的值不是没有。

改进以下代码的最pythonic方法是什么:

if 'first' in data and \
    data['first'] and \
    'second' in data['first'] and \
    data['first']['second'] and \
    'third' in data['first']['second'] and \
    data['first']['second']['third']:
    x = data['first']['second']['third']

2 个答案:

答案 0 :(得分:7)

另一种方法是使用get()方法:

x = data.get('first', {}).get('second', {}).get('third', None)

如果密钥不存在,则x = None

答案 1 :(得分:2)

您可以将其包围在try / except块中,如下所示:

tableView:didSelectRowAtIndexPath: