python - Python解析API响应Json主体嵌套数据
问题描述
我正在尝试使用 python 调用 get api 并获取 covid 疫苗详细信息并存储到一个适当的格式中。进入同一个我能够获取像“center_id,name,address,state_name”这样的中心数据,但我无法获取如下的会话数据
下面是我如何解析 JSON 响应。
dataJ = json.loads(r.text)
for i in range(len(dataJ['centers'])):
center = dataJ['centers'][i]['name']
address = dataJ['centers'][i]['address']
state = dataJ['centers'][i]['state_name']
district = dataJ['centers'][i]['district_name']
pin = dataJ['centers'][i]['pincode']
date =dataJ['centers'][i]['date']
print(center,"-",address,"-",state,"-",district,"-",pin,"-",date)
它给了我如下错误
日期 =dataJ['centers'][i]['date'] KeyError: 'date'
有人可以在这方面帮助我吗?
解决方案
你需要做一些类似于sessions
数组的事情,就像你对centers
数组所做的那样。请参阅NEW
下面的标记部分:
dataJ = json.loads(r.text)
for i in range(len(dataJ['centers'])):
center = dataJ['centers'][i]['name']
address = dataJ['centers'][i]['address']
state = dataJ['centers'][i]['state_name']
district = dataJ['centers'][i]['district_name']
pin = dataJ['centers'][i]['pincode']
date =dataJ['centers'][i]['date']
print(center,"-",address,"-",state,"-",district,"-",pin,"-",date)
# NEW: now process each session like you want
for j in range(len(dataJ['centers'][i]['sessions'])):
# do what you want with the session here:
# it's also easier to use variables rather than reproducing the entire index sequence repeatedly
session = dataJ['centers'][i]['sessions'][j]
session_id = session['session_id']
# ...