You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决dateutil.parser._parser.ParserError: Unknown string format错误?

修复dateutil.parser的ParserError错误

错误信息

raise ParserError("Unknown string format: %s", timestr)
dateutil.parser._parser.ParserError: Unknown string format: Fall Semester 2018 Printed: Caux, 15/01/2021

原代码示例

import dateutil.parser as dparser

text = 'Fall Semester 2018 Printed: Caux, 15/01/2021'
date_value = dparser.parse(text)
print(date_value)

问题原因

dateutil.parser默认无法从混杂大量无关文本的字符串中准确识别目标日期,字符串里的课程学期、打印地点等内容干扰了解析逻辑,导致解析失败。

修复方案

方案1:精准提取日期子串

直接从字符串中分离出明确的日期部分再解析,适合日期位置固定的场景:

import dateutil.parser as dparser

text = 'Fall Semester 2018 Printed: Caux, 15/01/2021'
# 分割字符串取最后一段,去除首尾空格得到日期
date_str = text.split(',')[-1].strip()
date_value = dparser.parse(date_str)
print(date_value)

方案2:启用模糊解析忽略无关内容

利用dateutil.parser的fuzzy=True参数,让解析器自动跳过非日期相关字符:

import dateutil.parser as dparser

text = 'Fall Semester 2018 Printed: Caux, 15/01/2021'
date_value = dparser.parse(text, fuzzy=True)
print(date_value)

注意:如果字符串中存在多个日期格式的数字(比如这里的2018),模糊解析会优先匹配第一个符合日期规则的内容,若需确保解析的是末尾的打印日期,方案1更可靠。

方案3:指定固定格式解析

如果日期格式固定为DD/MM/YYYY,使用datetime.strptime进行精准解析,完全避免歧义:

from datetime import datetime

text = 'Fall Semester 2018 Printed: Caux, 15/01/2021'
date_str = text.split(',')[-1].strip()
date_value = datetime.strptime(date_str, '%d/%m/%Y')
print(date_value)

内容的提问来源于stack exchange,提问作者ezpz4pc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:45:34