如何使用requests库提取API JSON响应中指定部分的数据?
如何用Requests库提取JSON响应中指定节点的数据?
当然有办法啦!其实requests本身就提供了便捷的工具来处理JSON响应,完全不用手动去解析整个冗长的文本内容。
你当前的代码是直接打印整个响应文本,但我们可以利用requests的response.json()方法,把JSON格式的响应直接转换成Python字典对象,之后就能通过字典的键层级直接定位到你需要的SingleItemOffers列表了。
修改后的完整代码
import requests url = "https://pd.na.a.pvp.net/store/v2/storefront/XXX" payload = {} headers = { 'X-Riot-Entitlements-JWT': 'XXX', 'Authorization': 'XXX' } # 发送GET请求 response = requests.get(url, headers=headers, data=payload) # 将JSON响应转换为Python字典(比解析text高效得多) response_data = response.json() # 直接通过键路径提取目标ID列表 target_ids = response_data["SkinsPanelLayout"]["SingleItemOffers"] # 输出结果 print(target_ids)
额外的容错小技巧
如果担心响应中某个节点可能不存在(比如API返回结构变动),可以用字典的get方法来避免抛出KeyError,比如:
# 即使SkinsPanelLayout或SingleItemOffers不存在,也会返回空列表 target_ids = response_data.get("SkinsPanelLayout", {}).get("SingleItemOffers", [])
这样你就能精准获取到SkinsPanelLayout下的SingleItemOffersID列表,不用再处理整个庞大的JSON响应啦!
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

