Mein Ziel ist es, ein Datum zu extrahieren, das mindestens einen Tag und einen Monat hat, aber auch eine Minute, eine Stunde und ein Jahr haben könnte.
Ich möchte vermeiden, dass der Parser ganze Zahlen findet und denkt, dass sie einen Tag des aktuellen Monats implizieren.
Außerdem möchte ich, dass der Parser ein Datum findet, das nur einen kleinen Teil davon ausmacht eine größere Zeichenfolge.
Denken Sie:
'Heute ist der schönste 27. März 2025' = datetime.datetime(2025, 3, 27, 0, 0)
'2 GB RAM' != datetime.datetime(2025, 3, 2, 0, 0) (Angenommen, wir befinden uns gerade in März)
Was ich bisher versucht habe
Verwendung des fuzzy=True-Arguments in dateutils
Code: Select all
from dateutil import parser
#OK: Correct Datetime is returned: datetime.datetime(2025, 3, 30, 0, 0)
parser.parse('Today is the most wonderful 30th March 2025', fuzzy=True)
#NOT OK: Integer is not ignored, Datetime is returned: datetime.datetime(2025, 3, 2, 0, 0)
parser.parse('2 is my lucky number', fuzzy=True)
Code: Select all
frome dateparser import parse
# OK: Returns correct datetime: datetime.datetime(2025, 3, 30, 0, 0
parse('30 March', settings={'REQUIRE_PARTS': ['month', 'day']})
#OK: Integer is Ignored, no datetime returned
parse('30', settings={'REQUIRE_PARTS': ['month', 'day']})
#NOT OK: Datetime Should be Found
parse('Today is the most wonderful 30th of March', settings={'REQUIRE_PARTS': ['month', 'day']})
Gibt es eine andere Möglichkeit, die gleiche Funktionalität zu erreichen?
Mobile version