bson.errors.InvalidDocument:键“$oid”不得以“$”开头尝试使用 pymongo 插入文档

2023-11-29

我想将文档从它所说的 json 文件插入到集合中bson.errors.InvalidDocument: key '$oid' must not start with '$'我该如何解决?

文档示例: [{"name": "Company", "_id": {"$oid": "1234as123541gsdg"}, "info": {"email": "[email protected]"}}]


在 Python 中用以下表示 ObjectIdbson.ObjectId class:

from bson import ObjectId

_id = ObjectId("5899e0aca600741755433908")

对于一个完整的例子:

from bson import ObjectId

collection.insert(
    {"name": "Company", "_id": ObjectId("5899e0aca600741755433908"),
     "info": {"email": "[email protected]"}})

为了加载 MongoDB Extended JSON 数据,请使用 PyMongo 的json_util.loads:

from bson.json_util import loads

json_str = '[{"name": "Company", "_id": {"$oid": "5899e0aca600741755433908"}, "info": {"email": "[email protected]"}}]'

data = loads(json_str)
print(data)

for doc in data:
    collection.insert(doc)

“loads()”从带有“$oid”的扩展 JSON 语法转换为实际的 ObjectId 实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bson.errors.InvalidDocument:键“$oid”不得以“$”开头尝试使用 pymongo 插入文档 的相关文章

随机推荐