【问题标题】:How can I continue "for-loop" even after an error?即使出现错误,如何继续“for-loop”?
【发布时间】:2021-12-22 07:39:13
【问题描述】:

我需要一些帮助。我需要我的代码在出错后继续“for”,只需显示有错误的工单并跳到下一个而不停止脚本。

from zenpy.lib.api_objects import CustomField
from zenpy import Zenpy
import csv, sys

creds = {
    'email' : 'xxxxxxxxxxx',
    'token' : 'xxxxxxxxxxx',
    'subdomain': 'xxxxxxxxxxx'
}

zenpy_client = Zenpy(**creds)

arquivo = '/Users/IDS.csv'
with open(arquivo, 'rt', encoding='utf8') as ficheiro:
    leitor = csv.reader(ficheiro)
    try:
        contador = 0
        for linha in leitor:
            
            if contador != 0:
                ticket = zenpy_client.tickets(id=linha[0])
                ticket.custom_fields.append(CustomField(id=1900002490207, value=linha[1]))
                zenpy_client.tickets.update(ticket)
                print ('O Ticket = ', linha[0], 'Teve o Este Valor Inserido = ', linha[1])
            contador = contador + 1
    except csv.Error as e:
        print('ficheiro %s, linha %d: %s' % (arquivo, leitor.line_num, e))

【问题讨论】:

  • 在 for 循环中移动 try 块。

标签: python-3.x csv for-loop try-catch zendesk


【解决方案1】:

将try-except放在for循环中

for linha in leitor:
        try:
            if contador != 0:
                ticket = zenpy_client.tickets(id=linha[0])
                ticket.custom_fields.append(CustomField(id=1900002490207, value=linha[1]))
                zenpy_client.tickets.update(ticket)
                print ('O Ticket = ', linha[0], 'Teve o Este Valor Inserido = ', linha[1])
            contador = contador + 1
        except csv.Error as e:
            print('ficheiro %s, linha %d: %s' % (arquivo, leitor.line_num, e))

要覆盖更多错误,您可以将csv.Error 替换为Exception

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2020-09-21
    • 2018-12-20
    • 2018-08-29
    • 2019-01-11
    • 2013-12-18
    相关资源
    最近更新 更多