首次API项目遇KeyError:无法获取mobile_phones字段数据求助
问题排查与解决
核心问题分析
- API返回数据是列表包裹的字典结构:你提供的API返回末尾带有
],说明整个响应是一个列表,直接通过response['mobile_phones']取值会找不到对应键,因为列表不能用字符串索引。 - 代码变量名拼写错误:循环内使用了未定义的
resposta,但循环变量实际是number,后续会触发NameError。 - 类型拼接隐患:
ddd是整数类型,直接与字符串拼接会报错,需先转换为字符串。
修正后的代码
response = data.json() # 先提取列表中的第一个字典元素 user_info = response[0] for phone in user_info['mobile_phones']: dd = str(phone['ddd']) # 转换为字符串避免拼接错误 num = phone['number'] whatsapp = phone['whatsapp_datetime'] print(f"{dd}{num}{whatsapp}") # 使用f-string提升可读性
额外优化建议
- 调试时先打印
print(response)确认API返回的实际结构,避免对数据格式的误判。 - 可以用字典的
get方法做容错处理,比如user_info.get('mobile_phones', []),即使mobile_phones键不存在也不会触发KeyError,而是返回空列表。
内容的提问来源于stack exchange,提问作者wikid
相关产品推荐
相关产品推荐

