国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用json序列化datetime類型實例解析

2020-02-22 23:14:25
字體:
來源:轉載
供稿:網友

使用python的json模塊序列化時間或者其他不支持的類型時會拋異常,例如下面的代碼:

# -*- coding: cp936 -*-from datetime import datetimeimport jsonif __name__=='__main__': now = datetime.now() json.dumps({'now':now})

運行會出現下面的錯誤信息:

Traceback (most recent call last): File "C:/Users/xx/Desktop/t.py", line 8, in <module>  json.dumps({'now':now}) File "C:/Python27/lib/json/__init__.py", line 231, in dumps  return _default_encoder.encode(obj) File "C:/Python27/lib/json/encoder.py", line 201, in encode  chunks = self.iterencode(o, _one_shot=True) File "C:/Python27/lib/json/encoder.py", line 264, in iterencode  return _iterencode(o, 0) File "C:/Python27/lib/json/encoder.py", line 178, in default  raise TypeError(repr(o) + " is not JSON serializable")TypeError: datetime.datetime(2012, 12, 26, 11, 51, 33, 409000) is not JSON serializable

意思是說datetime類不支持Json序列化

我們需要對json做下擴展,讓它可以支持datetime類型。

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

在調用json.dumps時需要指定cls參數為ComplexEncoder

例如:

json.dumps({'now':now}, cls=ComplexEncoder)

總結

以上就是本文關于python使用json序列化datetime類型實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀来县| 武清区| 洞头县| 准格尔旗| 山丹县| 故城县| 彰化县| 柘荣县| 桑日县| 玉树县| 靖江市| 大方县| 庄浪县| 萨嘎县| 新绛县| 东明县| 通州市| 宝丰县| 突泉县| 体育| 祁阳县| 海南省| 乌兰浩特市| 仁化县| 漳平市| 西林县| 彰武县| 济宁市| 台前县| 谢通门县| 泉州市| 威海市| 广汉市| 红河县| 江陵县| 芮城县| 锡林浩特市| 常山县| 贵阳市| 广昌县| 汨罗市|