【问题标题】:Problems importing Json file into mongodb using python使用python将Json文件导入mongodb的问题
【发布时间】:2019-12-06 16:07:27
【问题描述】:

谁能帮我解决以下问题?这几天我一直在为这个问题苦苦挣扎…… 我必须使用 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()

错误信息: document 必须是 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 字节)

【问题讨论】:

标签: python mongodb import pymongo


【解决方案1】:

insert_many 需要一个可迭代对象(例如一个列表),insert_one 需要一个记录。

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

[ {
  "a": "1"
} ]

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

{
  "a": "1"
}

至于其他错误,mongodb 文档有 16MB 文件大小限制。您需要对文件进行预处理以减小文档大小。

【讨论】:

    【解决方案2】:

    另外看看[mongoimport][1],可以直接导入JSON数据。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 2014-10-04
      • 2013-02-21
      相关资源
      最近更新 更多