Object of type ObjectId is not JSON serializable
2023-12-14 18:00:47
情况描述
一组字典数组插入 mongodb 中后,再次利用该数据时,出现此错误
原因
数据插入后,该数据段中会自动增加一个字段
'_id': ObjectId('65797907ef318927ea4ae270')
这个字段不陌生, mongodb 特有类型的数据
解决方法
方法1
为了解决此问题,您可以将ObjectId
对象转换为字符串类型,然后再进行序列化。可以使用str()
函数将ObjectId
对象转换为字符串。
以下是一个示例代码,展示如何将ObjectId
对象转换为字符串类型后进行序列化:
import json
from bson import ObjectId
# 创建一个包含ObjectId的字典
data = {"_id": ObjectId()}
# 将ObjectId转换为字符串类型
data["_id"] = str(data["_id"])
# 序列化为JSON字符串
json_data = json.dumps(data)
# 打印JSON字符串
print(json_data)
将 "_id" 中的 ObjectId('65797907ef318927ea4ae270') 转换为字符串即可
方法2
利用深拷贝传入数据,这样源数据避免被添加 "_id"
import copy
mongo_data = copy.deepcopy(data) # 深拷贝后的数据插入mongodb
文章来源:https://blog.csdn.net/u012206617/article/details/134978814
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!