使用pymongo将JSON导入mongoDB

我正在尝试使用pymongo模块从URL中提取一个JSON文件并将其按原样发送到mongoDB。

我有以下代码

#!/usr/bin/env python

import sys, urllib2, json, pymongo

from pymongo import MongoClient

myurl = "https://gist.githubusercontent.com/border/775526/raw/b921df18ba00262ab5bba8cadb3c178e1f7748f7/config.json"

response = urllib2.urlopen(myurl)

data = response.read()

connection = MongoClient('mongodb://user:password@localhost.com:27017/database')

connection.database_names()

db = connection.database

posts = db.posts

post_id = posts.insert_many(data).inserted_id

执行此操作后,出现此错误,引发TypeError(“ documents must be a non-empty

list”)TypeError:文档必须为非空列表

理想情况下,我希望能够从url中提取json并更新mongoDB,因为此json文件每周都会更新。谢谢

回答:

您需要将JSON转换为Python对象,然后PyMongo会将其转换为BSON以发送到MongoDB。要将JSON转换为Python对象,请使用PyMongo随附的“

bson.json_util”模块:

from bson import json_util

data = json_util.loads(response.read())

标准的Python

json.loads()函数也可以使用,但是PyMongo的json_util.loads()可以更好地处理一些MongoDB特定的细节。

以上是 使用pymongo将JSON导入mongoDB 的全部内容, 来源链接: utcz.com/qa/420014.html

回到顶部