Python 不能序列化date,datetime問題

Python 不能序列化date,datetime問題


使用python 查詢數據庫數據,並且將查詢到的數據格式化爲Json格式輸出
使用python自帶的json包格式化會報錯,

json.dumps(result)

如圖:
在這裏插入圖片描述
TypeError: Object of type datetime is not JSON serializable

因爲數據庫一般會存date,datetime等數據的格式,但是json包不支持格式化date,datetime格式的數據

擴展一個JSONEncoder出來用來格式化時間塊

class CJsonEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime):
            return obj.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(obj, datetime.date()):
            return obj.strftime('%Y-%m-%d')
        return json.JSONEncoder.default(self, obj)

現在只需要在json.dumps中添加一個參數即可:

json.dumps(result, cls=CJsonEncoder)

這樣就可以格式化date,datetime格式的數據了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章