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

发布于 2021-01-29 17:12:53

我正在尝试使用Python的csv模块(特别是DictReader该类)解析CSV文件。有没有Python的方法来检测空白或缺失的字段并引发错误?

这是使用以下标题的示例文件: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语句?如果需要添加更多字段,则还需要更多条件,如果可能的话,我希望避免这些条件。

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    if any(row[key] in (None, "") for key in row):
        # raise error
    

    编辑 :甚至更好:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看