麻烦使用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')