国产探花免费观看_亚洲丰满少妇自慰呻吟_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類型實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高要市| 开江县| 炉霍县| 内江市| 资溪县| 瓮安县| 甘孜| 德州市| 海南省| 崇义县| 靖西县| 伊吾县| 乐安县| 札达县| 泉州市| 玛纳斯县| 泸溪县| 手游| 曲沃县| 平顺县| 工布江达县| 洛浦县| 靖江市| 精河县| 宜宾县| 大连市| 祁连县| 忻州市| 巩留县| 封开县| 寻甸| 五家渠市| 凤翔县| 宁国市| 梅州市| 札达县| 太仆寺旗| 彭水| 兰西县| 东光县| 柳州市|