1

试图忽略诸如“明天”、“下周”、“更多”等相对日期search_datesdateparser.search

目前,这是我得到的行为:

from dateparser.search import search_dates

In: search_dates("more", settings={"STRICT_PARSING": True})

Out: [("more", datetime.datetime(2021, 4, 27, 11, 21, 45, 998830))]

In: search_dates("March 15, 2020", settings={"STRICT_PARSING": True})

Out: [("March 15, 2020", datetime.datetime(2020, 3, 15, 0, 0))]

我期待着:

from dateparser.search import search_dates

In: search_dates("more", settings={"STRICT_PARSING": True})

Out: [("more", None)]

In: search_dates("March 15, 2020", settings={"STRICT_PARSING": True})

Out: [("March 15, 2020", datetime.datetime(2020, 3, 15, 0, 0))]
4

1 回答 1

2

为此,您需要将relative-time解析器从search_dates.

from dateparser_data.settings import default_parsers
from dateparser.search import search_dates

# you start by creating a list of all parsers minus the relative-time parser
parsers = [parser for parser in default_parsers if parser != 'relative-time']

# then you pass the list you just created to the settings
search_dates('today', settings={'PARSERS': parsers})

使用您的示例:

In: search_dates("more", settings={"STRICT_PARSING": True, , 'PARSERS': parsers})

Out: None

In: search_dates("March 15, 2020", settings={"STRICT_PARSING": True, 'PARSERS': parsers})

Out: [('March 15, 2020', datetime.datetime(2020, 3, 15, 0, 0))]

文档

于 2021-04-26T15:51:44.890 回答