python - dict.get() 用于使用 python 的多维字典中的每个事件
问题描述
d=[{'a':{'b':[]}},{'a':{'b':{'c':[]}}},{'a':{'b':{'c':[],'d':[],'e':[]}}}]
我想要一些东西来返回'c'
or 'd'
or'e'
的每个事件的值,d
例如:
for i in d:
print(i.get('a',{}).get('b',{}).get('c','None')
但是,并不是每个i
ind
都有'b'
as dict
,有些i['a']['b']
是None
或list
,所以dict.get('c',None)
不能执行。虽然我可以if i['a']['b']!= None
为每个键使用,但我有很多键,例如['b']
,有没有任何切刀方法可以做到这一点?
解决方案
您可以尝试获取密钥并处理任何异常:
d = [{'a':{'b':[]}},{'a':{'b':{'c':[]}}},{'a':{'b':{'c':[],'d':[],'e':[]}}}]
for i in d:
try:
print(i['a']['b']['c'])
except (KeyError, TypeError):
pass
推荐阅读
- sql - 我应该使用 PIVOT 还是其他东西
- google-static-maps - 如何通过特定国家/地区的城市搜索静态地图
- javascript - 如何将 InsertTable 命令生成的表格包装在 div 中
- python - 如何将字符串格式化为包含连字符的 UUID 格式
- c# - 如何使用从数组列表中提供的变量来实例化游戏对象
- java - 如何将 Kafka (Java) 应用程序从 Windows 连接到 Linux 中的 Confluent
- python - 无法使用 Mixin 类扩展 python IntEnum
- javascript - NodeJS async/await 和 forEach
- c# - 使用 LINQ 和相应的销售数字计算价格范围
- vue.js - 将文件从 node_modules 复制到 dist 目录