如何检查python list/dict中是否存在第二层(嵌套)密钥?

Laz*_*rks 3 python dictionary nested list multidimensional-array

如果我的任何术语有误,请纠正我.

我正在尝试检查python列表/字典中是否存在嵌套键.

例如,下面我根据请求库的.json()方法返回的列表/字典中是否存在该值的键来为变量赋值(从文档中不清楚它究竟返回的是什么).

这适用于检查jsonassoc列表/字典的第一维中是否存在键:

 #works
 is_oa = jsonassoc[u'is_oa'] if u'is_oa' in jsonassoc else ""
Run Code Online (Sandbox Code Playgroud)

但是,我不确定当它嵌套在第二个维度时如何检查密钥是否存在.

我试过了:

#doesn't work:
mendeley = jsonassoc[u'readers'][u'mendeley'] if u'readers'[u'mendeley'] in jsonassoc else "" enter code here
# neither does simply this
mendeley = jsonassoc[u'readers'][u'mendeley'] if u'mendeley' in jsonassoc else ""
Run Code Online (Sandbox Code Playgroud)

我怎样才能检查一下'mendeley'键,它在list/dict中看起来像这样?

readers: {
     mendeley: '1',
     citeulike: '3',
     #etc.
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

beh*_*uri 12

使用字典.get方法:

d.get('key1',{}).get('key2')
Run Code Online (Sandbox Code Playgroud)

这样做你将绕过检查钥匙.