首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取错误datetime.date(2018,6,12)在Python语言中是不可序列化的

获取错误datetime.date(2018,6,12)在Python语言中是不可序列化的
EN

Stack Overflow用户
提问于 2018-06-11 15:53:12
回答 2查看 4.1K关注 0票数 3

我正在尝试使用Flask-Ask并创建Alexa技能。将日期和时间存储到json中时出现问题。

下面是错误

代码语言:javascript
复制
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.date(2018, 6, 12) is not JSON serializable

下面是代码片段

代码语言:javascript
复制
@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

我读到我们需要序列化它,但我不能让它正确地工作,以满足上述代码要求。谁来帮帮忙。谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-06-11 16:02:46

您可以尝试将datetime object类型转换为string

start_date更改为str(start_date)

票数 2
EN

Stack Overflow用户

发布于 2018-06-11 16:26:41

不管你是带着现在的datetime还是特别的日期。重要的是datetime.date才是type(start_date)

您可以尝试如下所示:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50792833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档