datetime.strptime格式匹配报错求助:时间数据' 02/20/18'不匹配'%m/%d/%y'
问题原因与解决方案
错误根源
你遇到的ValueError是因为时间字符串开头有个额外空格。看报错信息里的' 02/20/18',开头的空格没被你的格式串'%m/%d/%y'匹配到,所以解析失败——这和格式参数顺序无关,也是你调顺序没用的原因。
从你提供的文件数据也能验证:第三行School Trip, 02/20/18里,逗号后面多了个空格,导致current_event[1]提取到的是带前导空格的字符串。
两种解决办法
- 方法一:清理字符串(推荐)
用strip()去掉字符串前后的空白字符,不管数据里有没有空格都能兼容:event_date = datetime.strptime(current_event[1].strip(), '%m/%d/%y').date() - 方法二:修改格式串
在格式串对应位置加上空格,专门匹配带空格的情况,但仅适用于固定有空格的场景:event_date = datetime.strptime(current_event[1], '% m/%d/%y').date()
内容的提问来源于stack exchange,提问作者Mack.Live
相关产品推荐
相关产品推荐

