Cutplace:条件检查空字段

时间:2014-08-28 14:19:32

标签: python csv

我正在尝试使用工具'cutplace'(http://roskakori.github.io/cutplace)创建配置,以根据特定字段为空来检查csv文件中的空字段。

因此规则是这样的:如果字段#6不为空,则字段#8,#9和#10不应为空。

但是,我似乎无法在文档中找到此选项来执行此操作。非常感谢我可以如何做到这一点。

提前致谢。

1 个答案:

答案 0 :(得分:1)

icd/custom/custom_cutplace_checks.py中的

(确保该目录中有 init .py)

from cutplace import checks
from cutplace import ranges

class SixEightNineTen(checks.AbstractCheck):
    """Check that entries of have other fields if six is active"""
    def __init__(self, description, rule, availableFieldNames, location=None):
        self.as_super = super(SixEightNineTen, self)
        self.as_super.__init__(description, rule, availableFieldNames, location)
        self.reset()

    def checkRow(self, rowMap, location):
        if(rowMap["Field6"]!=''):
            if(any([rowMap["Field8"]=='',rowMap["Field9"]=='',rowMap["Field10"]==''):
                raise checks.CheckError(location)

在.icd文件的尾部:

,Checks,,,,,
C,filename must be unique,IsUnique,Filename,,,
C,MD5 must be unique,IsUnique,MD5,,,
C,"field6 implies 8,9,10",custom_cutplace_checks.SixEightNineTen