博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中json/simplejson 序列化/dumps 自定义类型
阅读量:6554 次
发布时间:2019-06-24

本文共 904 字,大约阅读时间需要 3 分钟。

hot3.png

json知道如何处理list,dict,tuple,string等,但他无法序列化它不知道的类型(比如date,datetime,自定义的object)
如果你遇到 raise TypeError(repr(o) + " is not JSON serializable")
而你又想要把这个对象里的某些信息保存,或者不让它报错直接返回空字符串。
do it like this:

import jsonfrom datetime import date, datetimeclass MyClass(object):    def __init__(self):        self.a=1        self.b=2def _default(obj):    if isinstance(obj, datetime):        return obj.strftime('%Y-%m-%d %H:%M:%S')    elif isinstance(obj, date):        return obj.strftime('%Y-%m-%d')    elif isinstance(obj, MyClass):            return {'a':obj.a,'b':obj.b}    else:        #return ''        #return str(obj)        raise TypeError('%r is not JSON serializable' % obj)mc = MyClass()print json.dumps({'now': datetime.now(), 'today': date.today(), 'mc': mc},default=_default)#==>   {"mc": {"a": 1, "b": 2}, "now": "2012-08-16 19:50:58", "today": "2012-08-16"}

转载于:https://my.oschina.net/lanybass/blog/73171

你可能感兴趣的文章
c++ 类的继承与派生
查看>>
[转] Sublime Text3 配置 NodeJs 环境
查看>>
【leetcode】449. Serialize and Deserialize BST
查看>>
HTTP-web服务器接收到client请求后的处理过程(很详细)
查看>>
Mobile开发之meta篇
查看>>
Flutter-BLoC-第二讲
查看>>
C# DataSet数据导入Excel 修正版- .net FrameWork 4.0以上
查看>>
NSBundle
查看>>
Linux kernel memory-faq.txt
查看>>
java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
查看>>
[Delphi] FMXUI - ListView用法简介
查看>>
再不做题就老了,这个假期就这么地了
查看>>
oracle中的三种异常情况
查看>>
6.18 学习记录
查看>>
centos6.7下网络设置
查看>>
[Android四大组件之二]——Service
查看>>
趋中法则
查看>>
一首《人道》,献给正在辛苦加班的程序员朋友们
查看>>
记录关于使用ADO.NET 连接池连接Oracle时Session信息不更新的坑
查看>>
nodejs windows下安装运行
查看>>