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

首頁 > 編程 > Python > 正文

Python json 錯誤xx is not JSON serializable解決辦法

2020-02-23 04:16:59
字體:
來源:轉載
供稿:網友

Python json 錯誤xx is not JSON serializable解決辦法

在使用json的時候經常會遇到xxx  is not JSON serializable,也就是無法序列化某些對象。經常使用django的同學知道django里面有個自帶的Encoder來序列化時間等常用的對象。其實我們可以自己定定義對特定類型的對象的序列化,下面看下怎么定義和使用的。

#!/usr/bin/env python # -*- coding: utf-8 -*- #json_extention #2014-03-16 #copyright: orangleliu #license: BSD  ''''' python中dumps方法很好用,可以直接把我們的dict直接序列化為json對象 但是有的時候我們加了一些自定義的類就沒法序列化了,這個時候需要 自定義一些序列化方法  參考: http://docs.python.org/2.7/library/json.html  例如: In [3]: from datetime import datetime  In [4]: json_1 = {'num':1112, 'date':datetime.now()}  In [5]: import json  In [6]: json.dumps(json_1) --------------------------------------------------------------------------- TypeError                 Traceback (most recent call last) D:/devsofts/python2.7/lib/site-packages/django/core/management/commands/shell.py c in <module>() ----> 1 json.dumps(json_1)  TypeError: datetime.datetime(2014, 3, 16, 13, 47, 37, 353000) is not JSON serial izable '''  from datetime import datetime import json  class DateEncoder(json.JSONEncoder ):   def default(self, obj):     if isinstance(obj, datetime):       return obj.__str__()     return json.JSONEncoder.default(self, obj)  json_1 = {'num':1112, 'date':datetime.now()} print json.dumps(json_1, cls=DateEncoder)  ''''' 輸出結果:  PS D:/code/python/python_abc> python ./json_extention.py {"date": "2014-03-16 13:56:39.003000", "num": 1112} '''  #我們自定義一個類試試 class User(object):   def __init__(self, name):     self.name = name  class UserEncoder(json.JSONEncoder):   def default(self, obj):     if isinstance(obj, User):       return obj.name     return json.JSONEncoder.default(self, obj)  json_2 = {'user':User('orangle')} print json.dumps(json_2, cls=UserEncoder)  ''''' PS D:/code/python/python_abc> python ./json_extention.py {"date": "2014-03-16 14:01:46.738000", "num": 1112} {"user": "orangle"}  ''' 

定義處理方法是繼承json.JSONEncoder的一個子類,使用的時候是在dumps方法的cls函數中添加自定義的處理方法。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平顶山市| 湘潭市| 马山县| 恭城| 巨鹿县| 特克斯县| 楚雄市| 高青县| 蛟河市| 顺平县| 商水县| 凤山市| 基隆市| 张家口市| 阜宁县| 嘉禾县| 鹤庆县| 清涧县| 元谋县| 濮阳市| 平潭县| 辽宁省| 霍山县| 闸北区| 马边| 长垣县| 手游| 邹城市| 濉溪县| 乌审旗| 邵东县| 西畴县| 芮城县| 前郭尔| 莱州市| 重庆市| 高青县| 乾安县| 平果县| 依兰县| 金阳县|