我有今天发送的电子邮件主题列表(我连接到我的 IMAP 服务器并获取所有电子邮件):
sent_subjects = [
'subject1 backup up completed', 'subject2-2 backup failed', 'subject4 backup partial complete', 'email3 done', 'ak47 failed', 'mp5 is good', 'm4 is good'
]
我有一个json
文件,并且我拥有的几乎所有脚本以及发送电子邮件均在那里输入:
emails = [
{'subject': 'mp3 is good', 'date': '2020-02-02'},
{'subject': 'mp5 is good', 'date': '2020-02-02'},
{'subject': 'm4 is good', 'date': '2020-02-02'}
]
我是subjects
这样创建的:
subjects = [x['subject'] for x in emails]
这些是所有应该发送的主题(其中一些未发送):
static_subjects = [
'subject1', 'subject2-2', 'subject4', 'email3', 'ak47', 'subject10', 'email11', 'final destination'
]
subjects += static_subjects
subjects.sort()
我知道我可以做到这一点,但这不会返回预期的输出:
final = list(set(subjects) - set(sent_subjects))
因为有些主题不像subject1
并且subject4
没有静态主题,它们可能会根据某些条件而改变(这些主题不是我的,我不会发送带有这些主题的电子邮件。我只是收到它们)。
因此,我需要检查是否有任何主题subjects
不在中sent_subjects
,这样我就可以追踪我没有收到的电子邮件,看看是否存在任何问题。
在这种情况下,我没有收到这些主题,而输出应该有它们:
mp3 is good
subject10
email11
final destination
我知道的另一件事是使用if ==
不起作用,因为email11
例如像subject1
并且subject2-2
有两个或多个主题(如果失败或成功)。
你能帮我一下吗?
您可以尝试这个:
我的代码和你的代码之间的唯一区别是我
set([s.split(' ')[0] for s in sent_subjects])
最后另外排除了。