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

标签 python error-handling csv

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

这是一个使用以下 header 的示例文件:NAME、LABEL、VALUE

foo,bar,baz
yes,no
x,y,z

解析时,我希望第二行抛出错误,因为它缺少 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()

是否有一种更简洁的方法来检查 CSV 文件中的字段而无需使用一堆 if 语句?如果我需要添加更多字段,我还需要更多条件,我希望尽可能避免。

最佳答案

if any(row[key] in (None, "") for key in row):
    # raise error

编辑:更好:

if any(val in (None, "") for val in row.itervalues()):
    # raise error

关于python - 如何以 Pythonic 方式检测 CSV 文件中缺失的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278749/

相关文章:

python - 从 python 保存到 .json 文件时无法修复奇怪的字符

python - 在组内联合非集合迭代的有效方法

error-handling - Struts2 错误处理 - 未找到异常堆栈

php - 有没有比 `@`更好的方法来处理预期的错误?

python - 为什么我的数据没有被屏蔽?

python - 我对矩阵和数组加法感到困惑

php - 在PHP魔术方法上处理 “not found”案例的最佳方法是什么?

java - 在 Java 中无法获得所需的 XML 输出

scala - Scala:以一种有效的方式遍历CSV文件吗?

python - Tweepy StreamListener 到 CSV