У меня есть строковое представление объекта JSON.
dumped_dict = '{"debug": false, "created_at": "2020-08-09T11:24:20"}'
Когда я вызываю json.loads с этим объектом;
json.loads(dumped_dict)
Я получаю;
{'created_at': '2020-08-09T11:24:20', 'debug': False}
Здесь нет ничего плохого. Однако я хочу знать, есть ли способ преобразовать указанный выше объект с помощью json.loads во что-то вроде этого:
{'created_at': datetime.datetime(2020, 08, 09, 11, 24, 20), 'debug': False}
Вкратце, можем ли мы преобразовать строки datetime в фактические объекты datetime.datetime, пока вызов json.loads?
Метод реализует рекурсивный поиск строки в формате
import json
from dateutil.parser import parse
def datetime_parser(value):
if isinstance(value, dict):
for k, v in value.items():
value[k] = datetime_parser(v)
elif isinstance(value, list):
for index, row in enumerate(value):
value[index] = datetime_parser(row)
elif isinstance(value, str) and value:
try:
value = parse(value)
except (ValueError, AttributeError):
pass
return value
json_to_dict = json.loads(YOUR_JSON_STRING, object_hook=datetime_parser)
даты и времени