首页 > 数据库技术 > 详细

mongodb 序列化问题

时间:2019-08-26 16:47:14      阅读:151      评论:0      收藏:0      [点我收藏+]

在使用MongoDB时总是会和数据的ID打交道,MongoDB的ID使用的是ObjectId对象类型。ObjectId无法通过json序列化,需要转换。

错误:

TypeError: ObjectId(‘5cb58e2b8b403d177092b667‘) is not JSON serializable
1
解决方法,将ObjectId对象转成字符串,使用中直接使用‘5cb58e2b8b403d177092b667‘即可。

from bson import ObjectId
import json

class JSONEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, ObjectId):
return str(o)
return json.JSONEncoder.default(self, o)

res = json.dumps(DBResultMessage, cls=JSONEncoder)

该方法是本人觉得比较简单好用的方案之一。同理,该方法也可以用于其他json不支持的格式转换,比如datetime类型,只需要将函数中类型变成datetime,返回值转换成希望的字符格式即可。

mongodb 序列化问题

原文:https://www.cnblogs.com/hanzeng1993/p/11413401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!