Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在smarter_csv中转义的引用字段_Ruby_Csv_Smartercsv - Fatal编程技术网

Ruby 在smarter_csv中转义的引用字段

Ruby 在smarter_csv中转义的引用字段,ruby,csv,smartercsv,Ruby,Csv,Smartercsv,我有一个CSV文件,我正试图用Ruby中的smarter_CSV处理它。每个字段都有双引号,有些字段中嵌套了双引号,但没有转义。我使用:force\u simple\u split=>true来修复这种情况。但是,当我试图处理该文件时,每个字段中都有转义引号。我做错了什么 我正在打开一个由Windows服务器生成的csv文件,看起来像这样 校长1,校长2,校长3 字段1,这里有嵌套引号,字段2,字段3 我用更聪明的csv打开文件,就像这样 c=SmarterCSV.process'myfile.

我有一个CSV文件,我正试图用Ruby中的smarter_CSV处理它。每个字段都有双引号,有些字段中嵌套了双引号,但没有转义。我使用:force\u simple\u split=>true来修复这种情况。但是,当我试图处理该文件时,每个字段中都有转义引号。我做错了什么

我正在打开一个由Windows服务器生成的csv文件,看起来像这样

校长1,校长2,校长3 字段1,这里有嵌套引号,字段2,字段3

我用更聪明的csv打开文件,就像这样

c=SmarterCSV.process'myfile.csv',强制简单拆分:true,文件编码:iso-8859-1,行\ sep:\r

然后我得到这样的输出

{:header1=>\field1,有\嵌套引号\, :header2=>\field2\,, :header3=>\field3\ }

强制简单分割就是这么做的。。它不允许在数据中嵌入:col_sep字符

请注意,您的示例CSV数据包含一个嵌入的逗号,简单地将数据行拆分为四个字段,而不是三个字段

因为没有提供第四个标题,所以忽略第四个字段


请打开一个问题以正确处理引用的数据,如您的示例所示

,但它在错误的位置拆分。理想情况下,header1的值应为field1,此处有\nested quotes\。
> SmarterCSV::VERSION
 => "1.0.19"
> options = {:force_simple_split => true}
> ap SmarterCSV.process('/tmp/quoted.csv', options)
[
   {
        :header1 => "\"field1",
        :header2 => "There are \"nested quotes\" here.\"",
        :header3 => "\"field2\""
    }
]