【发布时间】:2019-09-28 12:36:34
【问题描述】:
我正在 python 中尝试一个简单的代码,其中我有一个字典列表,我将根据字典中的键过滤掉值。
我的字典列表是这样的:
Mylist = [
{"data": "two.mail-in.daimler.com.", "ttl": 3600, "type": "MX"},
{"data": "two.mail-in.daimler.com.", "ttl": 3600},
{"data": "two.mail-in.daimler.com.", "ttl": 3600, "type": "A"},
]
我想提取键值对为“type”的字典:“A”为此,我使用的操作码是:
a = list(filter(lambda type: type['type'] == 'A', Mylist))
这段代码没有问题。问题是,第二个字典没有一个名为“Type”的键,所以它会抛出一个 KeyError 异常并且程序停止而不检查第三个字典或列表的第二个索引。
我想要的是忽略第二个字典中的 keyerror 并检查第三个字典并打印出键值为“type”=“A”的字典
所以我尝试使用 try/except。
Mylist = [
{"data": "two.mail-in.daimler.com.", "ttl": 3600, "type": "MX"},
{"data": "two.mail-in.daimler.com.", "ttl": 3600},
{"data": "two.mail-in.daimler.com.", "ttl": 3600, "type": "A"},
]
IP_Data =[]
for dicti in Mylist:
try:
a = list(filter(lambda type: type['type'] == 'A', Mylist))
IP_Data.append(a)
except:
continue
print(IP_Data)
input()
我已将结果存储在另一个名为 IP_Data 的列表中。当我运行代码时,我得到一个空数组的结果,即 [] 有人可以告诉我为什么会发生这种情况以及使整个字典存储在键值为 type=A 的数组中的任何方法
p.s 我也尝试过通过而不是继续,但我仍然遇到同样的问题。
谢谢。
【问题讨论】: