在進行CSV解析時,如何在Ruby on Rails中忽略CSV文件的標題行!任何想法解析CSV文件時忽略標題行
11
A
回答
1
我已經找到了上述問題的解決方案。這是我在Ruby 1.9.X中完成的方式。
csv_contents = CSV.parse(File.read(file))
csv_contents.slice!(0)
csv=""
csv_contents.each do |content|
csv<<CSV.generate_line(content)
end
26
如果你使用Ruby 1.8.x的和FasterCSV,它具有「頭」選項:
csv = FasterCSV.parse(your_csv_file, {:headers => true}) #or false if you do want to read them
如果你使用Ruby 1.9.x的,默認的庫基本上是FasterCSV,所以你可以做到以下幾點:
csv = CSV.parse(your_csv_file, {headers: true})
+2
注意爲「CSV.parse your_csv_content」和「CSV.parse your_csv_content,headers:true」返回不同對象的數據。首先是數組數組,第二個是'CSV :: Row'對象數組http://stackoverflow.com/a/37856698/473040 – equivalent8 2016-06-16 10:37:59
3
一個很酷的方式忽略標題就是讀它作爲一個數組,而忽略第一行:
data = CSV.read("dataset.csv")[1 .. -1]
# => [["first_row", "with data"],
["second_row", "and more data"],
...
["last_row", "finally"]]
與:headers => false
方法的問題是,CSV
不會嘗試讀取第一行作爲標題,但會將其視爲數據的一部分。所以,基本上,你有一個無用的第一行。
5
csv = CSV.read("file")
csv.shift # <-- kick out the first line
csv # <-- the results that you want
0
我已經找到了更簡單的方法是這樣:
file = CSV.open('./tmp/sample_file.csv', { :headers => true })
# <#CSV io_type:File io_path:"./tmp/sample_file.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"" headers:true>
file.each do |row|
puts row
end
0
這是最簡單的一個爲我工作。你可以閱讀一個CSV文件,而忽略它的第一線,是使用headers: true
頁眉或字段名稱:
CSV.foreach(File.join(File.dirname(__FILE__), filepath), headers: true) do |row|
puts row.inspect
end
你可以做你想要row
什麼都。別忘了headers: true
相關問題
- 1. 在不忽略第一行的情況下解析csv文件
- 2. 忽略CSV中的多個標題行
- 3. 按標題解析CSV文件
- 4. 解析csv文件,忽略引號中逗號的逗號c#
- 5. 在解析JSON時忽略換行符
- 6. 忽略CSV文件中的行c#
- 7. XML Lite解析問題 - 解析時忽略無效數據
- 8. 使用awk解析CSV文件時,爲什麼會忽略空單元格?
- 9. 忽略csv解析導軌上的第一行
- 10. MySQL infile忽略標題行
- 11. HTML解析器忽略img標籤(Golang)
- 12. SAX解析器忽略CDATA - html標籤
- 13. 根據列中的匹配結合2個CSV文件,忽略標題行
- 14. 如何忽略特定條件後解析csv文件的其餘部分?
- 15. 解析CSV文件
- 16. 解析CSV文件
- 17. 解析CSV文件
- 18. 在javascript中,如何在上傳csv文件時忽略空行?
- 19. 解析文件,忽略註釋和空行
- 20. 解析時忽略文件中的字符
- 21. 我在解析目錄時如何忽略特定文件?
- 22. C++ strptime忽略解析時區
- 23. SimpleDateFormat在解析時忽略月份
- 24. 解析WAV文件標題
- 25. 解析CSV文件「CSV文件
- 26. 解析CSV文件問題C#
- 27. Intellij IDEA忽略文件運行問題
- 28. 導入CSV到MySQL,但忽略標題行
- 29. 忽略俚語AST解析器丟失的標題
- 30. mongoimport csv忽略註釋行
你的問題到底是什麼?要跳過標題行,只需從第1行開始,而不是從0開始 – sra 2011-05-09 11:28:41
,不要忘記您需要標題來標識CVS的內容。否則,只需要知道 – sra 2011-05-09 11:31:50