2017-08-24 1 views
-1

Voici le code:python pymongo trouver KeyError

select_sql = 'select url from baidu_v_tbl' 
results = cur_oracle.execute(select_sql) 
`enter code here`urls = results.fetchall() 

    logging.info('start........... ') 

    for con in urls: 
     url = con[0] 
     url_v = ''.join(['https://www.baidu.com/s?wd=', url, '@v'])  mongo_records = db_mongo.keywords.find({'url': url_v},{'url': 1, 'keyword': 1}, no_cursor_timeout=True) 

    mongo_keywords = [key['keyword'] for key in mongo_records if key['keyword']] 

Ceci est l'erreur:

Traceback (most recent call last): 
    File "from_keywords_into_oracle.py", line 44, in <module> 
    mongo_keywords = [key['keyword'] for key in mongo_records] 
KeyError: 'keyword' 
+0

Pouvez-vous reindent/reformater votre code? –

Répondre

0

L'exception est claire: "mot-clé 'KeyError".

La variable mongo_records est une collection de dict objet (ou dict-like) et vous obtenez au moins un élément qui n'a pas la clé 'mot-clé'.

Vous pouvez remplacer par:

mongo_keywords = [key['keyword'] for key in mongo_records if 'keyword' in key] 
+0

ye, merci pour votre aide, ça marche, – blackang

+0

mais maintenant une nouvelle question – blackang

+0

@blackang Postez une nouvelle question sur SO, s'il vous plaît. –