python - 如何检查 python 列表/字典中是否存在第二层(嵌套)键?

标签 python list dictionary multidimensional-array nested

如果我的术语有误,请纠正我。

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

例如,下面我根据 Requests' library's .json() method 返回的列表/字典中是否存在该值的键来为变量赋值。 (从文档中不清楚它究竟返回了什么)。

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

 #works
 is_oa = jsonassoc[u'is_oa'] if u'is_oa' in jsonassoc else ""

但是,当键嵌套在二维中时,我不确定如何检查键是否存在。

我试过:

#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 ""

例如,我如何检查“mendeley”键,它在列表/字典中看起来像这样?

readers: {
     mendeley: '1',
     citeulike: '3',
     #etc.
}

提前感谢您的帮助!

最佳答案

使用字典 .get方法:

d.get('key1',{}).get('key2')

这样做您将绕过 key 检查。

关于python - 如何检查 python 列表/字典中是否存在第二层(嵌套)键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24974078/

相关文章:

python - 使用python将每个字符串列表的最后一个字符加倍

C++遍历列表以比较位置

python - 根据任一索引处的值从两个列表中删除项目

python-3.x - 是否可以采用这种使用字典来查找/评估许多函数之一及其相应参数的方法?

c++ - 使用多个键或键和优先级快速访问的数据结构

python - 尝试为 python 包构建 cython 扩展,而不是创建共享对象 (.so) 文件

python - Pandas:根据时间条件将行从一个数据帧映射到另一个数据帧

python 编码

python - 为什么我不能在函数内使用 kwargs 更改变量?

python - 在 python 中使用 grep 命令