【发布时间】:2015-03-18 08:13:29
【问题描述】:
假设我想编写一个函数,该函数将从字典中返回任意值,例如:mydict['foo']['bar']['baz'],如果没有,则返回空字符串。但是,我不知道mydict['foo']是否一定存在,更不用说mydict['foo']['bar']['baz']了。
我想做这样的事情:
safe_nested(dict, element):
try:
return dict[element]
except KeyError:
return ''
但我不知道如何编写将接受函数中的查找路径的代码。我开始接受一个以句点分隔的字符串(如foo.bar.baz),所以这个函数可以递归地尝试获取下一个子字典,但这感觉不是很Pythonic。我想知道是否有办法同时传递字典(mydict)和我感兴趣的子结构(['foo']['bar']['baz']),并让函数尝试访问它或返回一个空字符串,如果它遇到KeyError。
我这样做的方式是否正确?
【问题讨论】:
标签: python dictionary