我正在尝试使用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
我读到我们需要对此进行序列化,并且我无法使其正常工作以满足上述代码要求。有人请帮忙。感谢
答案 0 :(得分:1)
您可以尝试将datetime
object
压缩为string
。
将start_date
更改为str(start_date)
。
答案 1 :(得分: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)