将pymongo集合导出到JSON文件

时间:2020-03-08 03:04:00

标签: python mongodb pymongo

如何将pymongo集合导出到JSON文件,我有一个巨大的集合,其中包含大约1 GB的数据,我需要一种有效的方法来导出数据并从中创建JSON文件。 我正在使用以下代码,就像在堆栈溢出答案之一中所写。

def getJSONFromDB():
    db = GetMongo_client()
    collection = db['collection_name']
    cursor = collection.find({})
    file = open("collection.json", "w")
    file.write('[')
    for document in cursor:
      file.write(json.dumps(document))
      file.write(',')
    file.write(']') 

但是它给了我以下错误: TypeError:ObjectId类型的对象不可JSON序列化

1 个答案:

答案 0 :(得分:0)

使用dumps模块中的bson.json_util

import pymongo
from bson.json_util import dumps

db = pymongo.MongoClient()['mydatabase']

def getJSONFromDB():
    collection = db['collection_name']
    cursor = collection.find({})
    file = open("c:\\temp\\collection.json", "w")
    file.write('[')
    for document in cursor:
        file.write(dumps(document))
        file.write(',')
    file.write(']')

for i in range(10000):
    db.collection_name.insert_one({f'test{i}': i})
getJSONFromDB()