Python 如果特定键为空,如何从字典列表中删除整个字典?

Python 如果特定键为空,如何从字典列表中删除整个字典?,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,所以我有一个字典列表,里面有很多条目,看起来像这样: [{'Date': 'Jul 26', 'Time': '07:04:12', 'PID': '28886', 'Message': 'authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=207.243.167.114 user=root', 'Access Type': 'Failed', 'host/IP address': '207.243.1

所以我有一个字典列表,里面有很多条目,看起来像这样:

[{'Date': 'Jul 26', 'Time': '07:04:12', 'PID': '28886', 'Message': 'authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=207.243.167.114  user=root', 'Access Type': 'Failed', 'host/IP address': '207.243.167.114'}
{'Date': 'Jul 27', 'Time': '04:16:07', 'PID': '30999', 'Message': 'session opened for user cyrus by (uid=0)', 'Access Type': 'Success', 'host/IP address': ''}
{'Date': 'Jul 27', 'Time': '04:16:08', 'PID': '30999', 'Message': 'session closed for user cyrus', 'Access Type': '', 'host/IP address': ''}]
我想删除“访问类型”为“”的整个字典

我已经试过了,但只要值为空,就会删除所有字典,但我只想特别针对“访问类型”


您可以使用列表理解来检查
访问类型
是否为空:

[d for d in data if d["Access Type"]]
或显式检查


第一种方法之所以有效,是因为在真理测试上下文中,空字符串
被视为
False
。您可以从文档中查看更多信息

您尝试过什么,问题到底是什么?提示:您可以使用简单的列表理解,或者
过滤器
(如果您愿意),我已经编辑了问题,以显示我尝试过的内容潜在的
d.get(“访问类型”,“”)=“
将是更安全的选项…@GrzegorzSkibinski True,但我会让OP决定哪个选项更安全。以上说明了OP可以遵循的解决方案。
[d for d in data if d["Access Type"]]
[d for d in data if d["Access Type"] != ""]