TypeError: datetime.datetime(2016, 9, 25, 21, 12, 19, 135649) is not JSON serializable解决办法
1.一个简单的方法来修补json模块,这样序列将支持日期时间。
import json
import datetime json.JSONEncoder.default = lambda self, obj: (obj.isoformat() if isinstance(obj, datetime.datetime) else None) result = json.dumps(ret)
print(result)
[{"date": "2016-09-25T21:12:19.135649", "id": 16}]
2.该模块为您提供了一个默认的编码器:json.JSONEncoder。您需要扩展这个提供您的实现default方法序列化对象。
import json
import datetime
from time import mktime
#
# class MyEncoder(json.JSONEncoder):
# def default(self, obj):
# if isinstance(obj, datetime.datetime):
# return str(mktime(obj.timetuple()))
#
# return json.JSONEncoder.default(self, obj)
# result = json.dumps(ret, cls = MyEncoder)
[{"date": "1474809139.0", "id": 16}]
方法3:我最喜欢的, 同时可以更好的应用于tornado的序列格式化

解决办法:
from decimal import Decimal
import datetime, json class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
return obj.strftime("%Y-%m-%d %H:%M:%S")
elif isinstance(obj, Decimal):
return str(obj)
else:
# return json.JSONEncoder.default(self, obj)
return str(obj) # 根据需求进行修改 if __name__ == '__main__': data = [{"ProjectName": "测试", "UserID": datetime.datetime.now(), "ProjectCreateTime": "2017-12-18 15:15", "ProjectPublic": "",
"ProjectOrgan": Decimal()}]
print(data)
print(json.dumps(data, cls=ComplexEncoder, ensure_ascii=False))

res = SelectProInfor(UserID)
for i in res:
print(i)
for k, va in i.items():
if isinstance(va, decimal.Decimal):
i[k] = str(va)
if isinstance(va, object):
i[k] = str(va)
TypeError: datetime.datetime(2016, 9, 25, 21, 12, 19, 135649) is not JSON serializable解决办法的更多相关文章
- TypeError: datetime.datetime(2016, 9, 25, 21, 12, 19, 135649) is not JSON serializable解决办法(json无法序列化对象的解决办法)
1.一个简单的方法来修补json模块,这样序列将支持日期时间. import json import datetime json.JSONEncoder.default = lambda self, ...
- dell r710 安装ubuntu 12.04 server 启动后进入initramfs解决办法
dell r710 安装ubuntu 12.04 server 启动后进入initramfs解决办法 grub 启动菜单后加入 rootdelay=90, 如下:/boot/vmlinuz-2.6.3 ...
- sql server报【从varchar数据类型到datetime数据类型的转换产生一个超出范围的值】错误的解决办法
产生这个错误的原因是在使用convert函数将给定的日期字符串转换为日期类型的时候,因为datetime这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误. 如果类型是[datetime ...
- Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法
相信很多朋友都会慕名Sqlserver 2016的R语言功能,将自己的数据库升级到Sqlserver 2016,但是当你安装完Sqlserver 2016的R语言组件之后,你会发现并不能直接使用,比如 ...
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序报错的解决办法
https://www.jb51.net/article/157457.htm 下载32位版本安装即可 Microsoft Access Database Engine Redistributable ...
- python3运行报错:TypeError: Object of type 'type' is not JSON serializable解决方法(详细)
返回结果先转成str 字符创
- python:datetime.datetime is not JSON serializable 报错问题解决
问题: 项目使用django开发,返回的数据中有时间字段,当json.dumps()时提示:datetime.datetime is not JSON serializable 解决: import ...
- 2016年12月17日 星期六 --出埃及记 Exodus 21:12
2016年12月17日 星期六 --出埃及记 Exodus 21:12 "Anyone who strikes a man and kills him shall surely be put ...
- 机器学习入门-随机森林温度预测的案例 1.datetime.datetime.datetime(将字符串转为为日期格式) 2.pd.get_dummies(将文本标签转换为one-hot编码) 3.rf.feature_importances_(研究样本特征的重要性) 4.fig.autofmt_xdate(rotation=60) 对标签进行翻转
在这个案例中: 1. datetime.datetime.strptime(data, '%Y-%m-%d') # 由字符串格式转换为日期格式 2. pd.get_dummies(features) ...
随机推荐
- SQL/LINQ/Lamda 写法[转发]
SQL LINQ Lambda SELECT * FROM HumanResources.Employee from e in Employees select e Employees .Sele ...
- 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return fal的区别
今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时 ...
- HTML5 移动浏览器支持
- 从头写个http client(java)
不熟悉java,但我熟悉http,然后从头打造个简单的httpclient,支持get/post,支持gzip,支持重定向,支持encoding,支持transfer-encoding,支持ssl,支 ...
- iOS小知识点(UI部分)
1. 父视图通过Tag来找到UIView UIView *targetView = [superView viewWithTag:10];//只在当前视图以及subviews中找,不能再孙子中找. 2 ...
- MySQL学习
关于MySQL学习,先推荐一个网站,资源很多.讲得很细 StudyMySQL-最好的MySQL学习网站 我的MySQL学习之旅: 1.简单了解下MySQL数据库,安装MySQL.MySQL管理工具(刚 ...
- jQuery中clone和clone(true)的区别
今天要写的是clone和clone(true)的区别 两者长得很像呀,clone(true)比clone() 多了一个true.看下图白白的牙,笑起来就是这么灿烂.有了true就跟笑起来一样,有了笑 ...
- 选择QT作为自己的图形库
图形库太多,公司里面一直使用自己的图形库,换一家公司,就换个图形库,现在公司没有对我开放图形库代码. 想来想去还是自己要有一套图形库,拿来主义最方便,选来选去感觉还是QT比较方便.同时能学习一下C++ ...
- Alpha阶段项目Postmortem
以下对成员名字的简称: 陈鸿超 = 陈1 陈彦吉 = 陈2 石浩然 = 石 韩青长 = 韩 1. 设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? ...
- 【CityHunter】Unity3D设计AR探索模式
为了增加游戏的乐趣性,我对项目进行了Unity3D的引入,经过一番折腾,终于做出了一个基本的AR探索模式的基本雏形. 途中的小方块就是虚拟物体,因为是静态图片,所以也不能看出什么来,只能文字形容一下: ...