0

我正在尝试编写一个 Python 脚本来搜索 Shodan API 并返回 ID、CVE 和描述。由于我的一些搜索结果(例如“java”)没有已建立的 CVE(或 CVE 密钥),因此我的脚本会阻塞。我知道我需要将搜索包装在 try/except 错误处理中,但我没有任何运气能够找到研究网络的内容。这是我得到的错误,下面是代码。首先十分感谢。

- - - - 错误 - - - -

    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'])
4

1 回答 1

0

看起来您想要使用dict.get并为其提供一个默认值,以便在密钥不存在的情况下返回:

print '%s: %s: %s' % (exploit.get('id', '[blank]'), exploit.get('cve', '[blank]'), exploit.get('description', '[blank]'))
于 2013-03-07T17:25:48.203 回答