Python|安全访问嵌套字典键
有时,在使用Python时,我们可能会遇到一个问题,即我们需要获取字典的二级键,即嵌套键。这种类型的问题在 Web 开发中很常见,尤其是随着 NoSQL 数据库的出现。让我们讨论一些安全获取字典中嵌套可用键的方法。
方法 #1:使用嵌套的get()
该方法用于解决此特定问题,我们只是利用get()
的功能在没有值的情况下检查和分配以实现此特定任务。如果不存在任何键,则仅返回非错误 None。
# Python3 code to demonstrate working of
# Safe access nested dictionary key
# Using nested get()
# initializing dictionary
test_dict = {'Gfg' : {'is' : 'best'}}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# using nested get()
# Safe access nested dictionary key
res = test_dict.get('Gfg', {}).get('is')
# printing result
print("The nested safely accessed value is : " + str(res))
输出 :
The original dictionary is : {'Gfg': {'is': 'best'}}
The nested safely accessed value is : best
方法 #2:使用reduce()
+ lambda
上述功能的组合可用于执行此特定任务。它只是使用 lambda函数检查可用键。这种方法的优点是可以一次查询超过1个键,即更多嵌套级别的键,但缺点是它只适用于Python2。
# Python code to demonstrate working of
# Safe access nested dictionary key
# Using reduce() + lambda
# initializing dictionary
test_dict = {'Gfg' : {'is' : 'best'}}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# using reduce() + lambda
# Safe access nested dictionary key
keys = ['Gfg', 'is']
res = reduce(lambda val, key: val.get(key) if val else None, keys, test_dict)
# printing result
print("The nested safely accessed value is : " + str(res))
输出 :
The original dictionary is : {'Gfg': {'is': 'best'}}
The nested safely accessed value is : best