我有一个称为companyNumbers的整数列表。正在根据在线API检查这些文件以测试它们是否有效。

某些公司编号的第一位数字不正确,因此我想检查该数字,然后如果收到HTTP错误(指示无效的数字),请重新检查该数字减去第一位数字。

如果这再次无效,则将该数字写入错误表,否则将其存储在正确的数字中。

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块似乎没有任何作用。

最佳答案

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)

09-27 14:49