【问题标题】:Python csv reader, check for missing headers gracefullyPython csv阅读器,优雅地检查丢失的标题
【发布时间】:2021-06-14 07:21:41
【问题描述】:

我正在读取一个 csv 文件,如下所示:

HEADER1 HEADER2
First row1
Second row2

现在我需要根据我的inc_headers 检查它是否缺少任何“标题”,例如 HEADER1 或 HEADER2。

inc_headers = ['HEADER1','HEADER2','HEADER3']

def validatefields():
    inc_missing = []
    incident_reader = csv.DictReader(open(incident_path))
    for line in incident_reader:
        for field in inc_headers:
            if line[field]:
                pass
            else:
                inc_missing.append(field)
            continue
        break

在上面的示例中,我正在尝试查看 HEADER3 是否存在,它应该只是将 field 附加到 inc_missing 列表中。相反,程序因错误而中断。该程序完全崩溃,不再遵循elseexcept 子句。我还尝试了下面的try 语法,它仍然会抛出错误。如何优雅地捕获此错误?

try:
    x = line[field]
except:
    ....

【问题讨论】:

  • 这不是“回溯错误”。 “回溯”是与错误相关的附加信息。你应该在这里展示它。
  • @mkrieger1 这表明我对新事物缺乏经验,我深表歉意。我来自 mf-rpgle

标签: python


【解决方案1】:

下面的代码块将解决此问题。参考this

sys.tracebacklimit = 0
try: 
    line[field]
except Exception as e:
    inc_missing.append(field)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2011-05-04
    相关资源
    最近更新 更多