0

ユーザーがアップロードした csv ファイルを解析する Web アプリケーションがあります。

一部のユーザーが csv ファイルをアップロードすると、ここに記載されている適切な csv 形式と一致しません

例えば:

abc,hello mahmoud,this is" description, bad

これは

abc,hello mahmoud,"this is"" description", bad

rubyのfastcsvライブラリを使用して間違った csv を解析すると、失敗します。ただし、ファイルをExcel または openofficeで開くと成功します。

csvテキストを再フォーマットして適切なフォーマットにできるRubyライブラリはありますか?

4

1 に答える 1

2

ドキュメントから:

やりたくないことは、FasterCSV の無効な CSV をフィードすることです。CSV 形式の仕組みにより、フィールドが無効であることを確認するために、パーサーがファイルの最後まで読み取る必要があるのが一般的です。これは多くの時間とメモリを消費します。

幸いなことに、無効な CSV を操作する場合、Ruby の組み込みメソッドはほぼすべての点で優れています。たとえば、引用符で囲まれていないフィールドの解析は次のように簡単です。

data.split(",")

This would give you an array. If you really want valid CSV (f.e. because you rescued the MalformedCSVError) then there is... fasterCSV!

require 'csv'
str= %q{abc,hello mahmoud,this is" description, bad}
puts str.split(',').to_csv 
#=> abc,hello mahmoud,"this is"" description", bad
于 2012-02-05T17:28:47.157 に答える