-1

ファイル関連のタスクに取り組んでいます。いくつかの行とヘッダーを含むCSVファイルがあります。特定のヘッダーを含む列をフェッチし、最後に新しい列を作成して、いくつかの操作を実行する必要があります。列をフェッチするにはどうすればよいですか。特定のヘッダー値を持つ値と、最後に新しい列を作成するにはどうすればよいですか?

4

2 に答える 2

1

次の形式のCSVがあると仮定します

郵便番号 ネットワーク ID ネットワーク名 ゾーン 新しいネットワークですか?表示名 64024 275 Kansas City 2 いいえ Kansas City 64034 275 Kansas City 2 いいえ Kansas City

FasterCSV を使用できます。csv にヘッダーがある場合はheaders => true、以下に示すように、FasterCSV を使用して行ごとにデータをフェッチすること を指定できます。

FasterCSV.foreach(path_to_file, { :headers => true, :row_sep => :auto }) do |row|

CSVファイルから行を取得するcsvを反復するたびに、列2に「network_id」ヘッダーがあり、列3に「ネットワーク名」ヘッダーがあることがわかっているのでnetwork_id = row[2]、簡単に指定できます。network_name = row[3]

それがあなたの質問に答えることを願っています

于 2012-11-26T08:01:11.990 に答える
0

CSV の最初のレコードは、ヘッダー レコードと見なすことができます。そうでなければならないというルールはありません。

あなたの質問に来ます。簡単に言えば、「ヘッダー」と見なされるものを取得するには、ロジックを (API を使用して、または API を使用せずに) 記述する必要があるということです。

特定のヘッダーを持つ列をフェッチし、最後に新しい列を作成して、いくつかの操作を行う必要があります

API が特定のヘッダーを取得するための暗黙的なメカニズムを提供するとは思いません。AFAIK CSVには仕様がありません。FasterCSV のような API を使用して CSV を解析し、作業を完了することができます。

于 2012-11-26T07:47:10.423 に答える