Python dateparser问题:含额外字符的日期字符串解析返回None
dateparser解析含无关内容的日期字符串返回None的问题解决
问题原因
dateparser默认采用严格解析模式,它会尝试将整个输入字符串匹配为日期格式。当字符串中混入非日期相关的额外内容时,无法匹配到完整的日期模式,因此返回None。
解决方法
方法1:关闭严格解析模式
通过settings参数设置STRICT_PARSING=False,让dateparser自动从字符串中提取有效日期部分,忽略无关内容:
from dateparser import parse # 关闭严格解析后可正常提取日期 print(parse('April 19, 2006 test test', settings={'STRICT_PARSING': False})) # 输出:2006-04-19 00:00:00
方法2:预处理字符串提取日期片段
如果需要更精准的控制,可以先用正则表达式提取字符串中的日期片段,再传给parse函数处理。例如针对美式英文日期的正则匹配:
import re from dateparser import parse text = 'April 19, 2006 test test' # 匹配英文月份+日期+年份的格式 date_pattern = r'(January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{1,2},\s+\d{4}' date_match = re.search(date_pattern, text) if date_match: print(parse(date_match.group())) # 输出:2006-04-19 00:00:00
内容的提问来源于stack exchange,提问作者petrashin_nikita
相关产品推荐
相关产品推荐

