首页 > 解决方案 > 使用 Python 动态读取 JSON 数据

问题描述

我有一个在调用时输出 JSON 数据的 URL。我必须检查该 JSON 输出中的特定单词。下面的例子 -

r1 = session.get(authurl, headers=headers, timeout=6)
resphead = r1.headers.get('content-type')
if 'application/json' in resphead:
    json_data = r1.json()
    overallstatus1 = str((json_data['status']))
    overallstatus2 = str((json_data['status']['code']))

有时,必须使用 using 调用输出['status']['code'],有时代码部分不会出现在输出中,即['status']. 同样,我将有许多其他状态来检查以相同方式不同的状态。

即使键发生变化,也可以在此处读取输出。

请澄清。

标签: pythonjson

解决方案


当您调用.json()响应对象时,它会返回一个 python dict。因此,您可以利用字典的内置函数get(),如果它存在于字典中,则返回一个键,否则一些预先指定的值(默认为None

来自文档: https ://docs.python.org/2/library/stdtypes.html#dict.get

然后,您的代码中的调用将是

overallstatus1 = str(json_data.get('status'))
overallstatus2 = str(json_data.get('status', {}).get('code'))

推荐阅读