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)