2017-08-24 4 views
-1

Dies ist der Code:Python pymongo finden 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']] 

Dies ist der Fehler:

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

Können Sie reindent/Code umformatieren? –

Antwort

0

Die Ausnahme ist klar: "KeyError 'Schlüsselwort'".

Die Variable mongo_records ist eine Sammlung von dict Objekt (oder dict-like) und Sie erhalten mindestens ein Element, das nicht den Schlüssel 'Schlüsselwort' hat.

können Sie ersetzen durch:

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

ye, thx für Ihre Hilfe, es funktioniert, – blackang

+0

aber jetzt eine neue Frage – blackang

+0

@blackang Poste eine neue Frage zu SO, bitte. –