我有以下代码,它可以工作。我正在检查 JSON 对象是否具有完整字段且不包含底层字段(Jira API,如果您感兴趣)。有没有更简洁的 for 循环编写方法?
myResponse = requests.get(url,auth=(urlUser,urlPass))
jd = myResponse.json()
myVals = jd['issues']
print(myVals[0].keys())
for issue in myVals:
if issue['fields']['assignee'] is not None:
assignee = issue['fields']['assignee']['displayName']
else:
assignee = "Unassigned"
最佳答案
您可以使用dict.get
使用后备字典:
>>> issues = {'fields': {'assignee': None}}
>>> issues['fields']['assignee'] or {} # fallback to an empty dictionary
{}
>>> (issues['fields']['assignee'] or {}).get('displayName', 'Unassigned')
'Unassigned'
<小时/>
for issue in myVals:
assignee = (issue['fields']['assignee'] or {}).get('displayName', 'Unassigned')
或定义后备字典,如下所示:
UNASSIGNED = {'displayName': 'Unassigned'}
for issue in myVals:
assignee = (issue['fields']['assignee'] or UNASSIGNED)['displayName']
关于python - 在 Python 中检查 JSON 响应中的空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322636/