from datetime import datetime import re from typing import Any def str_to_datetime(value: Any) -> Any: """Str to datetime. Args: value (Any): Any value. Returns: Datetime or original value. """ if isinstance(value, str) and re.match(r"^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}\.*\d*$", value): return datetime.fromisoformat(value) return value def date_hook(json_dict: dict) -> dict: """Deserialize dates for json loads. Args: json_dict (dict): Json keys and values. Returns: dict: Formatter json. """ for (key, value) in json_dict.items(): json_dict[key] = str_to_datetime(value) return json_dict