Object of type ObjectId is not JSON serializable
  TEZNKK3IfmPf 2024年03月22日 15 0

情况描述

一组字典数组插入 mongodb 中后,再次利用该数据时,出现此错误

原因

数据插入后,该数据段中会自动增加一个字段

'_id': ObjectId('65797907ef318927ea4ae270')

这个字段不陌生, mongodb 特有类型的数据

Object of type ObjectId is not JSON serializable

解决方法

方法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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月22日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   24天前   21   0   0 json
  TEZNKK3IfmPf   2024年03月29日   36   0   0 mongodb
  TEZNKK3IfmPf   2024年04月19日   19   0   0 jsonjava
TEZNKK3IfmPf