我有一个列表,其中包含类似
的字典(my_list)@RequestPart(name = "file", required = false) MultipartFile file
我想在生日前过滤掉结果
[{'name': 'jane', 'number': 123, 'birthday': '04/05/78'},
{'name': 'summer', 'number': 542, 'birthday': '07/01/1990'},
{'name': 'carter', 'number': 003, 'birthday': '12/15/1992'}]
这应该消除第一个条目,但是当我打印出我的过滤器时,所有三个条目仍将被打印。
如何比较字符串日期(生日)以过滤出数据?
答案 0 :(得分:2)
您可以使用datetime.strptime
将日期字符串解析为datetime
对象以进行比较。由于日期字符串的年份部分格式不一致,因此您应首先使用正则表达式替换使其标准化:
from datetime import datetime
import re
my_list = [{'name': 'jane', 'number': 123, 'birthday': '04/05/78'},
{'name': 'summer', 'number': 542, 'birthday': '07/01/1990'},
{'name': 'carter', 'number': 3, 'birthday': '12/15/1992'}]
print([elf for elf in my_list if datetime.strptime(re.sub(r'\d\d(\d\d)$', r'\1', elf['birthday']), '%m/%d/%y') >= datetime(1980, 1, 1)])
这将输出:
[{'name': 'summer', 'number': 542, 'birthday': '07/01/1990'}, {'name': 'carter', 'number': 3, 'birthday': '12/15/1992'}]