假设已经有一个包含多个证书的数组certs,我们可以使用以下代码来找到重复的证书并删除到期日期最早的匹配项:
# 导入datetime模块用于处理日期
import datetime
# 定义一个字典用于存储每个证书的到期日期
exp_dict = {}
# 遍历证书数组,将每个证书的到期日期存储到字典中
for cert in certs:
exp_date = datetime.datetime.strptime(cert['expiration_date'], '%Y-%m-%d')
if cert['name'] not in exp_dict:
exp_dict[cert['name']] = {'date': exp_date, 'index': certs.index(cert)}
else:
if exp_date < exp_dict[cert['name']]['date']:
certs.pop(exp_dict[cert['name']]['index'])
exp_dict[cert['name']] = {'date': exp_date, 'index': certs.index(cert)}
else:
certs.pop(certs.index(cert))
# 输出去重后的证书数组
print(certs)
以上代码中,我们定义了一个字典exp_dict来存储每个证书的到期日期,以便进行比较。在遍历证书数组时,我们将每个证书的到期日期存储到字典中,如果发现重复的证书,则比较它们的到期日期,删除到期日期最早的那个。最后输出去重后的证书数组。