Skip to content

markelrep/csvalidator

Repository files navigation

CSValidator

CSValidator is a tool for validation of .csv files using JSON schema

Quick Start

Install

go get -u github.com/markelrep/csvalidator

Schema

{
  "columns":[
    {
      "name": "id",
      "required": true
    },
    {
      "name": "comment",
      "required": false
    }
  ]
}

columns is array of objects with validation rules for each columns in .csv file

name of column, which should be the same as in .csv file otherwise validation will be failed. This field also supports regexp. Example

required true means that this column is required to exist in file, false that isn't required

Usage

package main
import "github.com/markelrep/csvalidator"

func main() {
	validator, err := csvalidator.NewValidator(csvalidator.Config{
		FilePath:       "./path/to/csv/files",
		FirstIsHeader:  true,
		SchemaPath:     "./path/to/json/schema",
		WorkerPoolSize: 0,
		// If ErrFilePath is defined then all errors with be written to this file else to the std our 
		ErrFilePath "./path/to/dst/file/with/errors"
	})
	if err != nil {
		// handle error
    }
	if err := validator.Validate(); err != nil {
		// handle error
	}
}

About

CSV validation

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages