擅长:python、mysql、java
<p>如果您向我们展示数据或解释其用途,我们可能会提供更好的答案,但现在如果您希望在不获取异常的情况下运行此代码,则需要考虑到并非所有项都包含此键的可能性。一种方法是使用<code>get()</code>调用而不是<code>__getitem__</code>调用(使用方括号)<code>dict.get(key, default)</code>方法返回{<cd4>},如果<code>key</code>不在<code>dict</code>中,<code>None</code>如果不提供<code>default</code>。因此,一个基本的解决方案是:</p>
<pre><code>for i in range(0,j): #loop to insert date into SQL Server
source_data = data[i]["_source"]
print source_data.get("nagios_service")
print source_data.get("nagios_host")
print source_data.get("nagios_author")
print source_data.get("nagios_severity_label")
print source_data.get("nagios_external_command")
print source_data.get("@timestamp")
</code></pre>
<p>一个稍微好一点的版本,它可以告诉您缺少哪个密钥:</p>
^{pr2}$