Извлечение строки даты и времени с помощью DateFinder - PullRequest
0 голосов
/ 26 сентября 2019
matches = list(datefinder.find_dates(str(laslogsystime[0])))
if len(matches) > 0:
    date = matches[0]
    # print(date)

logging = re.findall(r'(.*?)', date)[0]
print(logging)

TypeError: ожидаемая строка или байтовоподобный объект

1 Ответ

0 голосов
/ 26 сентября 2019

Вы должны пытаться извлечь строки , которые datefinder идентифицируют как строки даты и времени.

Вам не нужно re.findall, вам нужно сказать find_dates чтобы вернуть кортежи, содержащие как дату, так и исходную строку, передав аргумент source=True:

import datefinder
from datetime import datetime

laslogsystime = "August 1990 some text May 21 2015"
matches = [src for time, src in datefinder.find_dates(laslogsystime, source=True)]
print(matches) # => ['August 1990', 'May 21 2015']
...