python - 在 Python 中检查 JSON 响应中的空对象

标签 python json dictionary

我有以下代码,它可以工作。我正在检查 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/

相关文章:

php - 从过程代码转向oop

python - 尝试从文件制作 python 字典,但我不断收到类似 'too many values to unpack' 的错误

python - 在 python 中检测 dictionary.iteritems() 的最后一次迭代

python - 如何在 Pandas 数据框中以分组格式创建字典?

ios - RestKit RKObjectMapping 一个列表

python - a = x 和 a=x[ :] in python 有什么区别

python - 类变量与。 python中用于int值的实例变量

python - 如何在Python中具有不同键的两个字典之间执行方差运算?

java - 使用 Retrofit 和 Observable 解析 REST 响应消息

python - 真实的页面内容不是我通过 Requests 和 BeautifulSoup 得到的