From 3a9c6512a3d266edd29186d82c9d5adfcdbc2c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Fri, 15 Nov 2024 10:19:30 +0100 Subject: [PATCH] Handle error when parsing dates --- exif_json/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/exif_json/__init__.py b/exif_json/__init__.py index c65a43f..8f7a70b 100644 --- a/exif_json/__init__.py +++ b/exif_json/__init__.py @@ -74,9 +74,13 @@ def execute_exiftool(img_file: str) -> dict: parts = line.split(':', 1) exif_metadata[parts[0].strip().lower().replace(' ', '_')] = parts[1].strip() - for (date_field, date_format) in _date_fields.items(): - if date_field in exif_metadata: - exif_metadata[date_field] = datetime.strptime(exif_metadata[date_field], date_format) + for (field, date_format) in _date_fields.items(): + if field in exif_metadata: + try: + exif_metadata[field] = datetime.strptime(exif_metadata[field], date_format) + except ValueError as e: + print(f'Failed to convert {field} ({exif_metadata[field]}) to a datetime.') + raise e for field in _integer_fields: if field in exif_metadata: