Python提取JSON中elevation字段时出现KeyError问题求助
解决KeyError: 'elevation'问题
你的问题出在JSON结构的层级上——返回的resp顶层并没有'elevation'键,它嵌套在'results'数组的第一个字典元素里。
看打印的resp内容:
{'results': [{'latitude': 30.654543, 'longitude': 35.235351, 'elevation': -80}]}
- 顶层键是
'results',对应的值是一个列表 'elevation'在这个列表的第0个(第一个)字典元素中
修正后的代码:
r = requests.get(api_url + str(lat) + "," + str(longi)) resp = json.loads(r.text) # 先取results列表,再取第一个元素,最后提取elevation elevation = resp['results'][0]['elevation'] print(elevation)
如果要更安全(比如防止results为空的情况),可以加个判断:
if resp.get('results') and len(resp['results']) > 0: elevation = resp['results'][0]['elevation'] print(elevation) else: print("未找到有效海拔数据")
另外,requests库本身有json()方法可以直接解析响应,不用手动调用json.loads(r.text),简化代码:
r = requests.get(api_url + str(lat) + "," + str(longi)) resp = r.json() if resp.get('results') and len(resp['results']) > 0: print(resp['results'][0]['elevation'])
内容的提问来源于stack exchange,提问作者Tyler
相关产品推荐
相关产品推荐

