使用python将Json文件导入mongodb时出现问题

时间:2019-12-06 16:07:27

标签: python mongodb import pymongo

有人可以帮助我解决以下问题吗?几天来我一直在努力解决这个问题... 我必须使用python将json文件导入mongodb。 我同时尝试了insert_many和insert_one,但以下代码出现错误:

import json
import pymongo
from pymongo import MongoClient


mng_client = pymongo.MongoClient('localhost', 27017)
mng_db = mng_client['mydatabase1']
collection_credits = mng_db['credits']

with open('credits.json') as f:
    file_data = json.load(f)
    collection_credits.insert_many(file_data)

client.close()

错误消息: 文档必须是dict的实例bson.son.SON ...

并带有:

import json
import pymongo
from pymongo import MongoClient


mng_client = pymongo.MongoClient('localhost', 27017)
mng_db = mng_client['mydatabase1']
collection_credits = mng_db['credits']

with open('credits.json') as f:
    file_data = json.load(f)
    collection_credits.insert_one(file_data)

client.close()

错误:  BSON文档太大(191071260字节)

2 个答案:

答案 0 :(得分:0)

insert_many需要迭代(例如列表),insert_one需要一条记录。

如果您的数据如下所示,请使用insert_many:

[ {
  "a": "1"
} ]

如果您的数据如下所示,请使用insert_one:

{
  "a": "1"
}

对于其他错误,mongodb文档的文件大小限制为16MB。您将需要预处理文件以减小文档大小。

答案 1 :(得分:0)

还要看看可以直接导入JSON数据的[mongoimport][1]