Получение ошибки datetime.date (2018, 6, 12) не поддерживает сериализацию JSON в Python - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь использовать Flask-Ask и создать навык Alexa.У меня возникает проблема при сохранении даты и времени в json

Ниже приведена ошибка

raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.date(2018, 6, 12) is not JSON serializable

Ниже приведен фрагмент кода

@ask.intent("BookDateConfirmIntent")
def booking_confirmed(confirm_date):

    start_date = session['attributes']['startDate']
    data = {'services': '1234a', 'startDate': start_date, 'message': 'booking confirmed'}
    print json.dumps(data, indent=4, sort_keys=True, default=str)

Дата передачи выглядит2018-06-12

Я прочитал, что нам нужно сериализовать это, и я не могу заставить его работать правильно для вышеуказанного требования кода.Кто-нибудь, пожалуйста, помогите.Спасибо

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Неважно, берете ли вы настоящее время или какое-то конкретное.Важно то, что type(start_date) это datetime.date.

. Вы можете попробовать что-то вроде этого:

def myconverter(o):
    if isinstance(o, datetime.date):
        return "{}-{}-{}".format(o.year, o.month, o.day)

def booking_confirmed(confirm_date):

    start_date = myconverter(session['attributes']['startDate'])
    data = {'services': '1234a', 'startDate': start_date, 'message': 'booking confirmed'}
    print json.dumps(data, indent=4, sort_keys=True, default=str)
0 голосов
/ 11 июня 2018

Вы можете попробовать навести тип datetime object на string.

Изменить start_date на str(start_date).

...