collection.py
import sys
import os
import pymongo
from pymongo import MongoClient
class Collection():
"""returns a collection curser from mongodb"""
client = MongoClient()
def __init__(self, db, collection_name):
self.db = db
self.collection_name = collection_name
def getCollection(self):
data_base = getattr(self.client, self.db)
collObject = getattr(data_base, self.collection_name)
return collObject
main.py
import sys
import os
import collection
def main():
pass
if __name__ == '__main__':
print"Begin Main"
agents = Collection('hkpr_restore','agents')
print "agents is" , agents
These files are in the same directory. When I run main.py
, however, I get an error:
这些文件位于同一目录中。但是,当我运行main.py时,出现错误:
Begin Main
Traceback (most recent call last):
File "main.py", line 23, in <module>
agents = Collection('hkpr_restore','agents')
NameError: name 'Collection' is not defined
From what I've read, if the files are in the same directory, all I need to do is use import collection
.
根据我的阅读,如果文件在同一目录中,我需要做的就是使用import collection。
Am I missing something?
我错过了什么吗?
1 个解决方案
#1
You've only imported collection
, not Collection
.
您只导入了集合,而不是集合。
Either do from collection import Collection
, or use the full qualified name when instantiating: agents = collection.Collection('hkpr_restore','agents')
.
可以从集合导入集合中执行,也可以在实例化时使用完全限定名称:agents = collection.Collection('hkpr_restore','agents')。
#1
You've only imported collection
, not Collection
.
您只导入了集合,而不是集合。
Either do from collection import Collection
, or use the full qualified name when instantiating: agents = collection.Collection('hkpr_restore','agents')
.
可以从集合导入集合中执行,也可以在实例化时使用完全限定名称:agents = collection.Collection('hkpr_restore','agents')。