在Python中检查JSON响应中的空对象
我有下面的代码,它可以工作。我正在检查一个JSON对象是否有一个完整的字段,并且不包含底层字段(如果您感兴趣,请参阅JIRAAPI)。有没有更简洁的方法来编写for循环在Python中检查JSON响应中的空对象,python,json,dictionary,Python,Json,Dictionary,我有下面的代码,它可以工作。我正在检查一个JSON对象是否有一个完整的字段,并且不包含底层字段(如果您感兴趣,请参阅JIRAAPI)。有没有更简洁的方法来编写for循环 myResponse = requests.get(url,auth=(urlUser,urlPass)) jd = myResponse.json() myVals = jd['issues'] print(myVals[0].keys()) for issue in myVals: if issue['field
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"
您可以与回退字典一起使用:
>>> issues = {'fields': {'assignee': None}}
>>> issues['fields']['assignee'] or {} # fallback to an empty dictionary
{}
>>> (issues['fields']['assignee'] or {}).get('displayName', 'Unassigned')
'Unassigned'
或按如下方式定义回退字典:
UNASSIGNED = {'displayName': 'Unassigned'}
for issue in myVals:
assignee = (issue['fields']['assignee'] or UNASSIGNED)['displayName']
下面的代码工作得很好。我想这两种方法是一种偏好<代码>对于MyVAL中的问题:assignee=(问题['fields']['assignee']或{})。获取('displayName','Unassigned')
UNASSIGNED = {'displayName': 'Unassigned'}
for issue in myVals:
assignee = (issue['fields']['assignee'] or UNASSIGNED)['displayName']