每个键具有多个值的Dictionary.get - 不匹配

时间:2015-01-21 19:44:03

标签: python python-2.7 dictionary

我想从字典中检索一个值,其中键具有多个值。在某些情况下,没有密钥匹配,所以我想返回None。使用单值键作为dictionary.get(key,None)可以轻松实现这一点,但使用每个键的多个值可以轻松实现此目的吗?

import datetime
test = {
    u'ID1': {'End Date': None, 'Start Date': datetime.datetime(2014, 9, 22, 0, 0)},
    u'ID2': {'End Date': None, 'Start Date': datetime.datetime(2014, 9, 18, 0, 0)}
}


print test.get('ID1','Start Date',None)
print test.get('ID3','Start Date',None)

2 个答案:

答案 0 :(得分:1)

您有一个嵌套字典,需要执行两次查找。您可以创建一个能够完成您所需要的功能。

def getNestedDict(d, key1, key2, default):
    result1 = d.get(key1)
    if result1 is None:
        return default
    else:
        return result1.get(key2, default)

print getNestedDict(test, 'ID1', 'Start Date', None)

答案 1 :(得分:1)

test.get('ID1', {}).get('Start Date')

或者:

try:
    return test['ID1']['Start Date']
except KeyError:
    return None