-
-
17 Sep 2021 07:10:23 UTC
- Distribution: Catmandu
- Module version: 1.2016
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues (36)
- Testers (205 / 25 / 3)
- Kwalitee
Bus factor: 4- 87.53% Coverage
- License: perl_5
- Perl: v5.10.1
- Activity
24 month- Tools
- Download (813.62KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 18 contributors- Nicolas Steenlant, C<< <nicolas.steenlant at ugent.be> >>
-
Christian Pietsch
-
Dave Sherohman
-
Doug Bell
-
EC2 Default User
-
Jakob Voß
-
Johann Rolschewski
-
Magnus Enger
-
Matthias Vandermaesen
-
Mohammad S Anwar
-
Nicolas Franck
-
Patrick Hochstenbach
-
Pieter De Praetere
-
Snorri Briem
-
Stefan Weil
-
Tom Hukins
-
Upasana Shukla
-
Vitali Peil
- Dependencies
- Any::URI::Escape
- App::Cmd
- CGI::Expand
- Class::Method::Modifiers
- Clone
- Config::Onion
- Cpanel::JSON::XS
- Data::Compare
- Data::Util
- HTTP::Request
- Hash::Merge::Simple
- IO::Handle::Util
- LWP::UserAgent
- List::MoreUtils
- Log::Any
- Log::Any::Adapter
- MIME::Types
- Module::Build
- Module::Info
- Moo
- MooX::Aliases
- Package::Stash
- Parser::MGC
- Path::Iterator::Rule
- Path::Tiny
- Role::Tiny
- Role::Tiny::With
- String::CamelCase
- Sub::Exporter
- Sub::Quote
- Text::CSV
- Text::Hogan::Compiler
- Throwable
- Time::HiRes
- Try::Tiny::ByClass
- URI
- URI::Template
- UUID::Tiny
- Unicode::Normalize
- YAML::XS
- asa
- namespace::clean
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
Catmandu::Importer::CSV - Package that imports CSV data
SYNOPSIS
# From the command line # convert a CSV file to JSON catmandu convert CSV to JSON < journals.csv # set column names if CSV file has no header line echo '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 character echo '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 script use 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 byquote_char
and fields are separated bysep_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
is0
andfields
isundef
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
Module Install Instructions
To install Catmandu, copy and paste the appropriate command in to your terminal.
cpanm Catmandu
perl -MCPAN -e shell install Catmandu
For more information on module installation, please visit the detailed CPAN module installation guide.