Как преобразовать в объект даты и времени Python с помощью JSON.loads?

У меня есть строковое представление объекта 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?

31
задан ozgur 9 January 2012 в 18:43
поделиться

1 ответ

Метод реализует рекурсивный поиск строки в формате

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)
даты и времени
0
ответ дан 27 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: