如何以Pythonic方式检测CSV文件中的缺失字段?

bed*_*wyr 10 python csv error-handling

我正在尝试使用Python的csv模块(特别是DictReader类)解析CSV文件.是否有Pythonic方法来检测空或丢失的字段并抛出错误?

这是一个使用以下标题的示例文件:NAME,LABEL,VALUE

foo,bar,baz
yes,no
x,y,z
Run Code Online (Sandbox Code Playgroud)

在解析时,我希望第二行抛出错误,因为它缺少VALUE字段.

这是一段代码片段,展示了我是如何接近这一点的(忽略硬编码字符串......它们只是为了简洁而存在):

import csv

HEADERS = ["name", "label", "value" ]
fileH = open('configFile')
reader = csv.DictReader(fileH, HEADERS)

for row in reader:
    if row["name"] is None or row["name"] == "":
        # raise Error
    if row["label"] is None or row["label"] == "":
        # raise Error
    ...
fileH.close()
Run Code Online (Sandbox Code Playgroud)

是否有更清晰的方法来检查CSV文件中的字段是否有一堆if语句?如果我需要添加更多字段,我还需要更多条件,如果可能的话我想避免这些条件.

bal*_*pha 18

if any(row[key] in (None, "") for key in row):
    # raise error
Run Code Online (Sandbox Code Playgroud)

编辑:更好:

if any(val in (None, "") for val in row.itervalues()):
    # raise error
Run Code Online (Sandbox Code Playgroud)