来自pymongo.objectid import ObjectId ImportError:没有名为objectid的模块

时间:2015-01-31 12:57:21

标签: python mongodb twitter pymongo

我制作了一个python代码,用于从Mongo集合中获取推文的推文。我不想只获取对象文本并添加一个名为Sentiment的附加对象。

当我遍历推文并将json对象解析为字符串时,我得到错误:

来自pymongo.objectid的

导入ObjectId ImportError:没有名为objectid的模块

因此我使用以下代码

import pymongo
import nltk
import json
from json import JSONEncoder
from pymongo import MongoClient
from pymongo.objectid import ObjectId

#JSON Encoder
class MongoEncoder(JSONEncoder):
    def default(self, obj, **kwargs):
        if isinstance(obj, ObjectId):
            return str(obj)
        else:            
            return JSONEncoder.default(obj, **kwargs)

#Mongo Settings
client = MongoClient()
db = client.Sentiment
Tweets = db.Tweet
TweetTraining = db.TweetTraining

#GET TEXT_TAG FROM TWEET
for tweet in Tweets.find({"lang":"nl"},{"text"}):
  print json.dumps(tweet, cls=MongoEncoder)

我希望你能帮助我。非常感谢

埃里克

1 个答案:

答案 0 :(得分:1)

文件顶部的导入之一不正确。 ObjectId应该从bson.objectid而不是pymongo.objectid

加载
from bson.objectid import ObjectId

以下是通过ObjectId查询的pymongo文档的链接

PyMongo - Querying By ObjectId