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

首頁 > 編程 > Python > 正文

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

2020-01-04 15:52:03
字體:
來源:轉載
供稿:網友

使用python/214980.html">python/267959.html">python/301686.html">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類型實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朔州市| 济源市| 肇庆市| 广东省| 本溪市| 朝阳县| 巢湖市| 双牌县| 昭觉县| 突泉县| 荃湾区| 吴江市| 甘孜| 西和县| 海阳市| 昌平区| 高密市| 富民县| 无棣县| 台南县| 遂川县| 盘山县| 突泉县| 民勤县| 丹凤县| 嘉义县| 明星| 乃东县| 揭阳市| 莱阳市| 连南| 边坝县| 福鼎市| 繁昌县| 察哈| 宁德市| 灵石县| 阿坝| 佛山市| 砀山县| 囊谦县|