ruby-on-rails – 在ruby中迭代CSV

我想在 ruby中打印出一个CSV文件,但我想将其格式化.有没有办法在层次结构意义上格式化数据?这是我需要经历的列表的一小部分:

,"11: Agriculture,Forestry,Fishing and Hunting","111: Crop Production","111110: Soybean Farming","111120: Oilseed (except Soybean) Farming","111130: Dry Pea and Bean Farming","111140: Wheat Farming","112: Animal Production","112111: Beef Cattle Ranching and Farming","112112: Cattle Feedlots","112120: Dairy Cattle and Milk Production","112130: Dual-Purpose Cattle Ranching and Farming"

我的代码是:

require 'csv'

col_data = [] 
CSV.foreach("primary_NAICS_code.txt") {|row| col_data << row} 
puts col_data

这只是打印出来的一切.它是一个数组中的数组吗?就像是:

CSV.foreach do |row|
  row.each do |line|
    puts line
  end
end

任何帮助都会指引我朝着正确的方向前进.

我想获取格式化为这样的信息:

|_ <~~ row 1 column 1
| |__<~ row 1 column 2
| |  |__<~row 2 column 2 
| |  |  |__  
| |  |  |  |__  etc... 
| |  |  |  |  |__

解决方法

由于您的数据已经缩进,您只需转换/格式化它.这样的事情应该有效:

col_data.each do |row|
  indentation,(text,*) = row.slice_before(String).to_a
  puts indentation.fill("|").join(" ") + "_ " + text
end

输出

|_ 11: Agriculture,Fishing and Hunting
| |_ 111: Crop Production
| | |_ 111110: Soybean Farming
| | |_ 111120: Oilseed (except Soybean) Farming
| | |_ 111130: Dry Pea and Bean Farming
| | |_ 111140: Wheat Farming
| |_ 112: Animal Production
| | |_ 112111: Beef Cattle Ranching and Farming
| | |_ 112112: Cattle Feedlots
| | |_ 112120: Dairy Cattle and Milk Production
| | |_ 112130: Dual-Purpose Cattle Ranching and Farming

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...