我正在尝试使用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
我读到我们需要序列化它,但我不能让它正确地工作,以满足上述代码要求。谁来帮帮忙。谢谢
发布于 2018-06-11 16:02:46
您可以尝试将datetime object类型转换为string。
将start_date更改为str(start_date)。
发布于 2018-06-11 16:26:41
不管你是带着现在的datetime还是特别的日期。重要的是datetime.date才是type(start_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)https://stackoverflow.com/questions/50792833
复制相似问题