<p>您的代码绝对正确,比您接受的答案中的示例要好得多。处理此类情况有两种方法:防止异常或处理异常</p>
<p><strong>1。防止异常:</strong></p>
<pre class="lang-py prettyprint-override"><code>import json
with open('jenkinsBuild.json') as f:
data = json.load(f)
branch_name = 'refs/remotes/xyz/feature/demo_xyz'
for actions in data['actions']:
if 'lastBuiltRevision' in branch_data: # empty dict doesn't have this key too
for branch_data in actions['lastBuiltRevision']['branch']:
if branch_data['name'] == branch_name:
print('Name:', branch_data['name'], 'SHA1:', branch_data['SHA1'])
</code></pre>
<p><strong>2。处理异常:</strong></p>
<pre class="lang-py prettyprint-override"><code>import json
with open('jenkinsBuild.json') as f:
data = json.load(f)
branch_name = 'refs/remotes/xyz/feature/demo_xyz'
for actions in data['actions']:
try:
for branch_data in actions['lastBuiltRevision']['branch']:
if branch_data['name'] == branch_name:
print('Name:', branch_data['name'], 'SHA1:', branch_data['SHA1'])
except KeyError: # if any of accessed keys doesn't exist
pass
</code></pre>