3

我正在尝试使用 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

我读到我们需要对其进行序列化,但我无法使其正常工作以满足上述代码要求。有人请帮忙。谢谢

4

2 回答 2

2

您可以尝试将类型转换datetime objectstring.

更改start_datestr(start_date)

于 2018-06-11T08:02:46.040 回答
1

无论您是采用当前日期时间还是特定日期时间都没有关系。重要的是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)
于 2018-06-11T08:26:40.797 回答