使用 datetime.strptime() 时遇到问题

Trouble using datetime.strptime()

我有一个Excel点差sheet。我试图从 Excel sheet 中捕获包含日期的一行,然后用 datetime.strptime() 解析日期。

这是我正在使用的 Excel sheet 的一部分:

和我的相关代码:

pattern = re.compile(r'Listing(.+)', re.IGNORECASE)

a = pattern.findall(str(df))
print("a:", a)

new_a = str(a)
datetime_object = datetime.strptime(new_a, '%b %w %Y')
print("date:", datetime_object)

所以我捕获了 LISTING 之后的所有内容并生成:

a: [' JUN 11 2013 Unnamed: 1 \']

然后我尝试提取 Jun112013 但我失败了:

ValueError: time data "[' JUN 11 2013 Unnamed: 1 \\']" does not match format '%b %w %Y'

我相当确定这是一个简单的修复,但作为初学者,我不知道如何修复它。我应该改变我的 RegEx 以减少捕获吗?或者我应该修正 date.strptime() 接受的论点吗?

查看文档时,论据似乎是正确的:https://docs.python.org/3.5/library/datetime.html

感谢您的帮助。

您需要修改用于从 Excel 文件中获取日期的正则表达式。

pattern = re.compile(r'Listing ([A-Z]+ \d{1,2} \d{4})', re.IGNORECASE)

[A-Z]+ 表示 "one or more capital letters",\d{1,2} 表示 "one or two numbers",\d{4} 表示 "four numbers"。

此外,您使用的日期格式不正确 - %w 表示工作日(从 0 到 6 的数字代表从周日到周六的工作日),而您应该使用 %d 匹配日期本月

所以最后应该是这样的: datetime_object = datetime.strptime(new_a, '%b %d %Y')