jos*_*erg 6 python json mongodb pymongo
我正在尝试导入一个JSON文件,我从URL中提取并使用pymongo模块将其发送到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
Run Code Online (Sandbox Code Playgroud)
执行此操作时,我得到此错误引发TypeError("文档必须是非空列表")TypeError:文档必须是非空列表
理想情况下,我希望能够从url中提取json并更新mongoDB,因为这个json文件每周都会更新.谢谢
A. *_*vis 19
您需要将JSON转换为Python对象,然后PyMongo将转换为BSON以发送到MongoDB.要将JSON转换为Python对象,请使用PyMongo附带的"bson.json_util"模块:
from bson import json_util
data = json_util.loads(response.read())
Run Code Online (Sandbox Code Playgroud)
标准的Python json.loads()函数也可以工作,但PyMongo的json_util.loads()可以更好地处理一些MongoDB特定的细节.
| 归档时间: |
|
| 查看次数: |
18369 次 |
| 最近记录: |