NAME
Catmandu::Importer::CSV - Package that imports CSV data
SYNOPSIS
# From the command line# convert a CSV file to JSONcatmandu convert CSV to JSON < journals.csv# set column names if CSV file has no header lineecho '12157,"The Journal of Headache and Pain",2193-1801' | \catmandu convert CSV --header 0 --fields 'id,title,issn' to YAML# set field separator and quote characterecho '12157;$The Journal of Headache and Pain$;2193-1801' | \catmandu convert CSV --header 0 --fields 'id,title,issn' --sep_char ';' --quote_char '$' to XLSX --file journal.xlsx# In a Perl scriptuse Catmandu;my $importer = Catmandu->importer('CSV', file => "/foo/bar.csv");my $n = $importer->each(sub {my $hashref = $_[0];# ...});
DESCRIPTION
The package imports comma-separated values (CSV). The object fields are read from the CSV header line or given via the "fields" parameter. Strings in CSV are quoted by "quote_char" and fields are separated by "sep_char".
CONFIGURATION
- file
-
Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string.
- fh
-
Read input from an IO::Handle. If not specified, Catmandu::Util::io is used to create the input stream from the
"file"argument or by using STDIN.
- encoding
-
Binmode of the input stream
"fh". Set to":utf8"by default.
- fix
-
An ARRAY of one or more fixes or file scripts to be applied to imported items.
- fields
-
List of fields to be used as columns, given as array reference, comma-separated string, or hash reference. If
"header"is0and"fields"is"undef"the fields will be named by column index ("0", "1", "2", ...).
- header
-
Read fields from a header line with the column names, if set to
1(the default).
- sep_char
-
Column separator (
","by default)
- quote_char
-
Quotation character (
"""by default)
- escape_char
-
Character for escaping inside quoted field (
"""by default)
- allow_loose_quotes
- allow_loose_escapes
-
Allow common bad-practice in CSV escaping
METHODS
Every Catmandu::Importer is a Catmandu::Iterable all its methods are inherited. The methods are not idempotent: CSV streams can only be read once.
SEE ALSO
Catmandu::Exporter::CSV, Catmandu::Importer::XLS