python - Python csv阅读器,优雅地检查丢失的标题
问题描述
我正在阅读一个 csv 文件,如下所示:
标题1 | 标题2 |
---|---|
第一的 | 第 1 行 |
第二 | 第 2 行 |
现在我需要根据我的inc_headers
.
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
列表中。相反,程序因错误而中断。该程序完全崩溃,不再遵循else
orexcept
子句。我也试过try
下面的语法,它仍然会抛出一个错误。如何优雅地捕获此错误?
try:
x = line[field]
except:
....
解决方案
下面的代码块将解决该问题。参考这个
sys.tracebacklimit = 0
try:
line[field]
except Exception as e:
inc_missing.append(field)
推荐阅读
- markdown - 如何使用 Pandoc 将降价页面放到新的 PDF 页面上?
- python - 如何在 Google Cloud Functions 中处理 Python 函数中的线程?
- php - yii2 显示用户名而不是用户名
- javascript - 如何返回由 Javascript 更改的 onClick 值?
- r - 获取方程式以根据用户输入生成用于绘图的数据框
- android - 如何从片段中的另一个布局更新视图
- python - 需要扩展库存日志(日志)pandas 数据框以包含每个产品 ID 的所有日期
- python - 查找并绘制 numpy 数组的最大值和最小值点
- php - 如何从 foreach 中获取确定值
- angular - 使用 rjxs 和 angular 轮询请求