dmp*_*pop 64 python string date
如何从像"monkey 2010-07-10 love banana"这样的字符串中提取日期?谢谢!
unu*_*tbu 134
In [1]: import dateutil.parser as dparser
In [18]: dparser.parse("monkey 2010-07-10 love banana",fuzzy=True)
Out[18]: datetime.datetime(2010, 7, 10, 0, 0)
Run Code Online (Sandbox Code Playgroud)
无效日期提出ValueError:
In [19]: dparser.parse("monkey 2010-07-32 love banana",fuzzy=True)
# ValueError: day is out of range for month
Run Code Online (Sandbox Code Playgroud)
它可以识别多种格式的日期:
In [20]: dparser.parse("monkey 20/01/1980 love banana",fuzzy=True)
Out[20]: datetime.datetime(1980, 1, 20, 0, 0)
Run Code Online (Sandbox Code Playgroud)
请注意,它会猜测日期是否含糊不清:
In [23]: dparser.parse("monkey 10/01/1980 love banana",fuzzy=True)
Out[23]: datetime.datetime(1980, 10, 1, 0, 0)
Run Code Online (Sandbox Code Playgroud)
但它解析模糊日期的方式是可自定义的:
In [21]: dparser.parse("monkey 10/01/1980 love banana",fuzzy=True, dayfirst=True)
Out[21]: datetime.datetime(1980, 1, 10, 0, 0)
Run Code Online (Sandbox Code Playgroud)
lun*_*orn 57
如果日期以固定形式给出,您只需使用正则表达式提取日期,使用"datetime.datetime.strptime"来解析日期:
match = re.search(r'\d{4}-\d{2}-\d{2}', text)
date = datetime.strptime(match.group(), '%Y-%m-%d').date()
Run Code Online (Sandbox Code Playgroud)
否则,如果日期以任意形式给出,则无法轻松提取.
Fin*_*ham 20
用于从Python中的字符串中提取日期; 可用的最佳模块是日期取景器模块.
您可以按照下面给出的简单步骤在Python项目中使用它.
pip install datefinder
Run Code Online (Sandbox Code Playgroud)
import datefinder
input_string = "monkey 2010-07-10 love banana"
# a generator will be returned by the datefinder module. I'm typecasting it to a list. Please read the note of caution provided at the bottom.
matches = list(datefinder.find_dates(input_string))
if len(matches) > 0:
# date returned will be a datetime.datetime object. here we are only using the first match.
date = matches[0]
print date
else:
print 'No dates found'
Run Code Online (Sandbox Code Playgroud)
注意:如果你期待大量的比赛; 然后类推到列表将不是推荐的方式,因为它将具有很大的性能开销.