国产探花免费观看_亚洲丰满少妇自慰呻吟_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函數中添加自定義的處理方法。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香格里拉县| 靖安县| 灌阳县| 旬阳县| 利辛县| 嵊泗县| 固阳县| 清镇市| 柳林县| 瑞金市| 吴川市| 巨野县| 那坡县| 长沙县| 德兴市| 东兰县| 灵丘县| 泽州县| 普兰县| 湛江市| 民权县| 历史| 蕲春县| 南岸区| 石渠县| 石柱| 仲巴县| 光山县| 武汉市| 汝城县| 桑植县| 平湖市| 临沂市| 无锡市| 准格尔旗| 秦安县| 大足县| 霍林郭勒市| 青龙| 宁安市| 株洲县|