bulk88 has asked for the wisdom of the Perl Monks concerning the following question:
The CSV fileuse Text::CSV::Hashify; use Data::Dumper; my $filename = 'bad.csv'; $obj = Text::CSV::Hashify->new( { file => $filename, format => 'hoh', key => "PRODUCT CODE", quote_char => "'", escape_char => "|", #wont be found in the data, turn off +escaping auto_diag => 1, } ); print Dumper($obj->all);
The error message'PRODUCT CODE','CATEGORY','CATEGORY DESCRIPTION','CODE DESCRIPTION','O +PTIONAL CATEGORY','OPTIONAL CATEGORY DESCRIPTION' ' ','0 ','No Item',"INVALID CODE IN USER SUPPLIED DATA",' ',' ' '00100','1 ','Cat',"ORANGE CAT",' ',' ' '82131','94 ','Dog',"GREEN DOG",' ',' ' '82132','94 ','Dog',"'JOHNS' FLYING' DOG (Start 2001)",' ',' ' '82133','94 ','Dog',"MAGENTA DOG (End 2009)",' ',' '
# CSV_XS ERROR: 2034 - EIF - Loose unescaped quote @ rec 4 pos 24 $VAR1 = { ' ' => { 'CODE DESCRIPTION' => '"INVALID CODE IN USER SU +PPLIED DATA"', 'OPTIONAL CATEGORY DESCRIPTION' => ' ', 'CATEGORY' => '0 ', 'PRODUCT CODE' => ' ', 'CATEGORY DESCRIPTION' => 'No Item', 'OPTIONAL CATEGORY' => ' ' }, '82131' => { 'CODE DESCRIPTION' => '"GREEN DOG"', 'CATEGORY' => '94 ', 'OPTIONAL CATEGORY DESCRIPTION' => ' ', 'PRODUCT CODE' => '82131', 'OPTIONAL CATEGORY' => ' ', 'CATEGORY DESCRIPTION' => 'Dog' }, '00100' => { 'OPTIONAL CATEGORY' => ' ', 'CATEGORY DESCRIPTION' => 'Cat', 'CODE DESCRIPTION' => '"ORANGE CAT"', 'CATEGORY' => '1 ', 'OPTIONAL CATEGORY DESCRIPTION' => ' ', 'PRODUCT CODE' => '00100' } };
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: parsing malformed CSV with per column quote chars
by Tux (Canon) on Aug 07, 2014 at 18:04 UTC | |
by tye (Sage) on Aug 07, 2014 at 18:49 UTC | |
by Tux (Canon) on Aug 07, 2014 at 19:23 UTC | |
|
Re: parsing malformed CSV with per column quote chars (SMoP)
by tye (Sage) on Aug 07, 2014 at 18:28 UTC | |
|
Re: parsing malformed CSV with per column quote chars
by dasgar (Priest) on Aug 07, 2014 at 18:19 UTC |