簡體   English   中英

獲取錯誤datetime.date(2018,6,12)在Python中不是JSON可序列化的

[英]Getting error datetime.date(2018, 6, 12) is not JSON serializable in Python

我正在嘗試使用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

我讀到我們需要序列化這個並且我無法使其正常工作以滿足上述代碼要求。 有人請幫忙。 謝謝

您可以嘗試將datetime object類型轉換為string

start_date更改為str(start_date)

無論你是在考慮當前的約會時間還是某些特定時間都無關緊要。 重要的是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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM