14

我正在使用pymongo连接到我的mongodb

client = MongoClient()
mongo = MongoClient('localhost', 27017)
mongo_db = mongo['test']
mongo_coll = mongo_db['test']   #Tweets database

我有一个游标,正在遍历每条记录:

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

的原因try/except是因为如果["entities"]["urls"]不存在,它就会出错。

如何判断是否["entities"]["urls"]存在?

4

2 回答 2

11

Record 是一个字典,其中的键"entities"链接到另一个字典,因此只需检查是否"urls"在该字典中。

if "urls" in record["entities"]:

如果您只是想在任何情况下继续,您也可以使用 get。

msgurl = record["entities"].get("urls")

如果没有这样的键,这将导致 msgurl 等于 None。

于 2013-07-15T21:02:10.830 回答
8

我不熟悉 pymongo,但你为什么不改变你的查询,所以它只返回包含的结果"urls"?就像是:

mongo_coll.find({"entities.urls": {$exists:1}}) 

http://docs.mongodb.org/manual/reference/operator/exists/

于 2013-07-16T05:41:09.273 回答