l--*_*''' 10 python cursor mongodb pymongo
我正在连接我的mongodb使用pymongo:
client = MongoClient()
mongo = MongoClient('localhost', 27017)
mongo_db = mongo['test']
mongo_coll = mongo_db['test'] #Tweets database
Run Code Online (Sandbox Code Playgroud)
我有一个光标,并循环遍历每条记录:
cursor = mongo_coll.find()
for record in cursor: #for all the tweets in the database
try:
msgurl = record["entities"]["urls"] #look for URLs in the tweets
except:
continue
Run Code Online (Sandbox Code Playgroud)
原因try/except是因为如果["entities"]["urls"]不存在,则会出错.
如何确定["entities"] ["urls"]是否存在?
Record是一个字典,其中键"实体"链接到另一个字典,所以只需检查"urls"是否在该字典中.
if "urls" in record["entities"]:
Run Code Online (Sandbox Code Playgroud)
如果你只想继续,你也可以使用get.
msgurl = record["entities"].get("urls")
Run Code Online (Sandbox Code Playgroud)
如果没有这样的密钥,这将导致msgurl等于None.
我不熟悉pymongo,但你为什么不改变你的查询,所以它只返回包含'urls'的结果?就像是:
mongo_coll.find({"entities.urls": {$exists:1}})
Run Code Online (Sandbox Code Playgroud)
http://docs.mongodb.org/manual/reference/operator/exists/