Python中如何提取API返回短信列表里的code字段值?
如何提取短信列表中的code字段值
你遇到的问题很清晰:从打印结果能看到,smss是一个包含单个字典元素的列表(外面的方括号[]就是列表的标识),而列表不能直接用字符串键(比如'code')来索引,必须先定位到列表里的字典元素,再去取对应的字段。
这里有几种可行的解决方式:
方式1:直接链式访问(适合确定列表只有一个元素时)
既然你知道返回的短信列表里只有一条数据,你可以直接通过列表索引[0]拿到里面的字典,再获取code值:
token = 'token' id = "35633560231" headers = { 'Authorization': 'Bearer ' + token, 'Accept': 'application/json', } response = requests.get('https://5sim.net/v1/user/check/' + id, headers=headers) datas = response.json() smss = datas['sms'] # 直接获取第一个元素的code字段 print(smss[0]['code'])
方式2:先取出字典再访问(可读性更好)
如果你觉得链式访问不够直观,可以先把列表里的字典单独取出来,再获取code:
# ... 前面的代码不变 smss = datas['sms'] # 取出列表中的第一个短信字典 single_sms = smss[0] # 提取code值 print(single_sms['code'])
方式3:遍历列表(适合多条短信的情况)
如果后续接口可能返回多条短信,建议用循环遍历的方式,把每个短信的code都提取出来:
# ... 前面的代码不变 smss = datas['sms'] # 遍历所有短信 for sms in smss: print(sms['code'])
这样就能正确拿到你想要的code值啦~
内容的提问来源于stack exchange,提问作者lol saso
相关产品推荐
相关产品推荐

