如何用Python 3从指定API的JSON数据中获取首个Speciality值
获取JSON数据中的第一个Speciality值
嘿,我来帮你搞定这个问题!你之前的代码只是拿到了API返回的原始JSON字符串,还没把它解析成Python能直接操作的数据结构,所以没法直接提取特定字段。咱们来修改一下代码,一步步实现你要的功能:
首先,你需要导入Python的json模块,它能把JSON字符串转换成字典,这样咱们就能通过键来访问对应的值了。下面是完整的代码:
import urllib.request import json url = 'http://data.ehealthireland.ie/api/3/action/datastore_search?resource_id=967673a3-1ce0-47e0-8e09-c876894ad489' fileobj = urllib.request.urlopen(url) # 把API返回的内容解析成Python字典 response_dict = json.load(fileobj) # 按照JSON结构导航到第一个Speciality值 first_speciality = response_dict['result']['records'][0]['Speciality'] print(first_speciality)
代码解释:
json.load(fileobj):这一步把从API获取的原始字节流转换成了Python字典response_dict,这样咱们就能像操作普通字典一样访问里面的数据了。response_dict['result']['records'][0]['Speciality']:这个路径是根据API返回的JSON结构来的:- 先取
result键对应的内容,这是API返回的核心数据区域 - 然后取
records键,它是一个包含所有条目的列表 - 用
[0]取列表里的第一个条目 - 最后取这个条目里的
Speciality键,就是你要的第一个Speciality值啦
- 先取
额外小建议:
为了避免API返回空列表时出现索引越界错误,你可以加个简单的判断:
import urllib.request import json url = 'http://data.ehealthireland.ie/api/3/action/datastore_search?resource_id=967673a3-1ce0-47e0-8e09-c876894ad489' fileobj = urllib.request.urlopen(url) response_dict = json.load(fileobj) records = response_dict['result']['records'] if records: first_speciality = records[0]['Speciality'] print(first_speciality) else: print("没有找到任何记录哦")
这样就算API返回的记录为空,程序也能友好提示,不会崩溃~
内容的提问来源于stack exchange,提问作者Student of the Digital World
相关产品推荐
相关产品推荐

