python - 如果语句正确,Python 不会检测到函数循环
问题描述
我有以下代码
def numTest():
getNum = "https://sms-activate.ru/stubs/handler_api.php?api_key=" + api + "&action=getNumber&service=go&country=3"
numReq = requests.get(getNum)
smsNum = numReq.text
cleanNum = smsNum.split(":")
print(cleanNum)
reply = cleanNum[:6]
if reply == "ACCESS":
numID = cleanNum[1]
smsNo = cleanNum[2].replace("1", "", 1)
print(numID)
print(smsNo)
else:
numTest()
运行代码时,它无法正确检测到回复。所以 API 可以取回诸如['ACCESS_NUMBER', '379609689', '12165419985']
或这样的东西['NO_NUMBERS']
如果它是第一个我需要拆分它并只保留数组 [1] 和 [2] 如果它说没有数字我需要再次运行循环。同样发生的情况是,如果我在第一次尝试时得到一个数字,它会停止并正常工作,但如果我得到 No numbers,它会再次尝试,如果它得到一个数字,它会继续运行。
解决方案
cleannum
是一个列表,您正在寻找是否前 6 个字符的第一个元素是 ACCESS,而不是列表的前 6 个元素(永远不会等于字符串)
reply = cleanNum[0][:6]
推荐阅读
- javascript - TypeScript 解构对象数组,包括第一个对象和其中的值
- reactjs - React-Autosuggest,使用 Yup 进行验证
- powerbi - 是否可以在 SSAS 表格模型中分离命名和标识符或使用别名?
- php - 通过 WooCommerce 3+ 中特定类别的挂钩更改产品价格
- python - 检查字符串变量列表是一个特定的字符串
- delphi - 如何从 Virtual Listview 获取 OnData 索引的范围
- ssl-certificate - 如何在 Azure 数据工厂的复制数据活动中传递 SSL 证书以从 Rest Api 检索数据?
- swift - 通过另一个数组过滤(可编码)数组
- kotlin - 无法创建可变同步 TreeMap
- android - 在 EditText Android 中插入的右对齐字符串,未按预期显示