调用短信验证码租赁API获取phone_number时遇KeyError问题求助
解决API请求的KeyError问题
你遇到的KeyError是因为phone_number字段并不在返回JSON的顶层,而是嵌套在data子对象里。你的代码直接从根JSON对象中提取phone_number,自然找不到这个键。
另外注意你的代码里还有个小错误:导入语句写错了,应该是import requests而不是import request。
修正后的代码
import requests response = requests.get("https://api.viotp.com/request/getv2?token=my-apikey&serviceId=200") response_data = response.json() # 先获取顶层的data对象,再从中提取phone_number phone_number = response_data['data']['phone_number'] print(phone_number)
更健壮的写法(建议)
为了避免请求失败时出现异常,可以先判断请求是否成功:
import requests response = requests.get("https://api.viotp.com/request/getv2?token=my-apikey&serviceId=200") response_data = response.json() if response_data.get('success'): phone_number = response_data['data']['phone_number'] print(phone_number) else: print(f"请求失败:{response_data.get('message', '未知错误')}")
内容的提问来源于stack exchange,提问作者Tài Hoàng
相关产品推荐
相关产品推荐

