Phi*_*l O 5 json mongodb python-2.7
我正在使用MongoDB 3.4和Python 2.7。我已经从数据库中检索了一个文档,可以打印它,结构表明它是Python字典。我想将本文档的内容写为JSON文件。当我创建一个简单的字典时,d = {"one": 1, "two": 2}可以使用。json.dump(d, open("text.txt", 'w'))
但是,如果我用从MongoDB检索的文档替换上面代码中的d,则会收到错误消息
ObjectId不可JSON序列化
有什么建议吗?
ObjectId要序列化的默认json编码器无法理解的类定义。对于默认JSONEncoder无法理解的任何Python对象,您应该会遇到类似的错误。
一种选择是编写自己的自定义编码器进行序列化ObjectId。但是,您应该避免发明轮子,而应使用提供的PyMongo / bson实用程序方法bson.json_util
例如:
from bson import json_util
import json
json.dump(json_util.dumps(d), open("text.json", "w"))
Run Code Online (Sandbox Code Playgroud)