麻烦使用datetime.strptime()

我有一个Excel电子表格。 我想从包含date的Excel工作表中捕获一行,然后用datetime.strptime()parsingdate。

这里是我正在使用的Excel表格的位:

在这里输入图像说明

和我的相关代码:

 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 \\']

然后我尝试提取Jun 11日和2013但我失败:

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

我相当肯定,这是一个简单的修复,但作为一个初学者,我不明白如何解决它。 我应该改变我的RegEx捕捉更less? 或者我应该修复date.strptime()正在采取的参数?

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

谢谢你的帮助。

您需要修改正在使用的正则expression式来从Excel文件中获取date。

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

[AZ]+表示“一个或多个大写字母”, \d{1,2}表示“一个或两个数字”, \d{4}表示“四个数字”。

此外,您使用的date格式不正确 – %w表示工作日(从星期日到星期六,表示从星期几到星期六的0到6的数字),而您应该使用与当月的某天匹配的%d

所以它应该看起来像这样: datetime_object = datetime.strptime(new_a, '%b %d %Y')