2013-03-07 88 views
0

我想寫一個Python腳本,將搜索Shodan API並返回ID,CVE和說明。由於我的一些搜索結果(例如'java')沒有建立CVE(或CVE鍵),我的腳本扼殺了。我知道我需要在try/except錯誤處理中包裝搜索,但是我一直沒有找到能夠找到網絡研究的運氣。這是我得到的錯誤,下面是代碼。首先十分感謝。錯誤處理當Shodan API

-------- -------錯誤

print '%s: %s: %s' % (exploit['id'], exploit['cve'], exploit['description']) 
KeyError: 'cve 

--------我的代碼------

from shodan import WebAPI 
api = WebAPI("my shodan key") 

user_selection = raw_input("Enter something: ") 
print "searching for", (user_selection),"....." 

results = api.exploitdb.search(user_selection) 

for exploit in results['matches']: 
    print '%s: %s: %s' % (exploit['id'], exploit['cve'], exploit['description']) 

回答

0

它看起來像你想要使用dict.get並提供一個默認值,在密鑰不存在時返回:

print '%s: %s: %s' % (exploit.get('id', '[blank]'), exploit.get('cve', '[blank]'), exploit.get('description', '[blank]'))