【问题标题】:from pymongo.objectid import ObjectId ImportError: No module named objectidfrom pymongo.objectid import ObjectId ImportError: No module named objectid
【发布时间】:2015-03-30 20:52:46
【问题描述】:

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

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

from pymongo.objectid import ObjectId ImportError: No module named 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)

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

埃里克

【问题讨论】:

    标签: python mongodb twitter pymongo


    【解决方案1】:

    文件顶部的其中一个导入不正确。 ObjectId 应该从 bson.objectid 加载而不是 pymongo.objectid

    from bson.objectid import ObjectId
    

    这里是通过 ObjectId 查询的 pymongo 文档的链接

    PyMongo - Querying By ObjectId

    【讨论】:

      猜你喜欢
      • 2017-02-20
      • 2018-01-03
      • 2017-11-02
      • 2017-10-04
      • 2015-05-01
      • 2020-09-23
      • 2015-08-28
      • 2012-10-24
      • 1970-01-01
      相关资源
      最近更新 更多