Python构建嵌套的尝试除了语句

时间:2016-08-30 21:11:54

标签: python nested escaping try-catch

我有一个名为companyNumbers的整数列表。这些是针对在线API进行检查以测试它们是否有效。

某些公司号码的第一个数字不正确,所以我想查看号码,然后收到HTTP错误(表示无效号码),重新检查号码减去第一个数字。

如果再次无效,则将该号码写入错误表,否则将其存储在correctNumbers中。

for companyNumber in companyNumbers:
    try:
        r = s.profile(companyNumber).json()
    except HTTPError:
        try:
            r = s.profile(companyNumber[1:]).json()
        except HTTPError:
            errorSheet.write(i, 0, companyNumber)
    else:
        correctNumbers.append(r)

我不确定如何构建我的try / except / else语句。如果其中一个try块成功,我需要激活else语句。目前,嵌套的try块似乎没有做任何事情。

1 个答案:

答案 0 :(得分:1)

try在其嵌套下运行代码,直到发生错误。所以你也应该把输出放到那个层。

for companyNumber in companyNumbers:
    try:
        r = s.profile(companyNumber).json()
        correctNumbers.append(r)
    except HTTPError:
        try:
            r = s.profile(companyNumber[1:]).json()
            correctNumbers.append(r)
        except HTTPError:
            errorSheet.write(i, 0, companyNumber)