最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Pythonjson错误xxisnotJSONserializable解决办法介绍

来源:动视网 责编:小采 时间:2020-11-27 14:25:33
文档

Pythonjson错误xxisnotJSONserializable解决办法介绍

Pythonjson错误xxisnotJSONserializable解决办法介绍:这篇文章主要介绍了Python json 错误xx is not JSON serializable解决办法的相关资料,需要的朋友可以参考下Python json 错误xx is not JSON serializable解决办法在使用json的时候经常会遇到xxx is not JSON serializable,也
推荐度:
导读Pythonjson错误xxisnotJSONserializable解决办法介绍:这篇文章主要介绍了Python json 错误xx is not JSON serializable解决办法的相关资料,需要的朋友可以参考下Python json 错误xx is not JSON serializable解决办法在使用json的时候经常会遇到xxx is not JSON serializable,也


这篇文章主要介绍了Python json 错误xx is not JSON serializable解决办法的相关资料,需要的朋友可以参考下

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://www.gxlcms.com/ 
 
例如: 
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:devsoftspython2.7libsite-packagesdjangocoremanagementcommandsshell.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:codepythonpython_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:codepythonpython_abc> python .json_extention.py {"date": "2014-03-16 14:01:46.738000", "num": 1112} {"user": "orangle"} '''

定义处理方法是继承json.JSONEncoder的一个子类,使用的时候是在dumps方法的cls函数中添加自定义的处理方法。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

文档

Pythonjson错误xxisnotJSONserializable解决办法介绍

Pythonjson错误xxisnotJSONserializable解决办法介绍:这篇文章主要介绍了Python json 错误xx is not JSON serializable解决办法的相关资料,需要的朋友可以参考下Python json 错误xx is not JSON serializable解决办法在使用json的时候经常会遇到xxx is not JSON serializable,也
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top