排序CSV列的值
问题描述:
我的CSV文件看起来像排序CSV列的值
Name,Value1,Value2,Value3
bbb,1,3,4
aaa,5,1,7
ccc,2,2,5
有没有办法通过Value1
例如排序?
这样的结果将是
BBB,1,3,4
CCC,2,2,5
AAA,5,1,7
答
我发现SmarterCSV,所以我能够很容易地做到:
array_of_hashes = SmarterCSV.process('file.csv')
array_of_hashes.sort_by! { |hsh| hsh[:value1] }
答
如果要存储的所有数组中的值或散列可以使用Enumerable#sort
。
sort_index = 1 # or Hash Key "Value1"
values.sort { |a, b| a[sort_index] <=> b[sort_index] }
注意:不使用砰砰声!
这将返回排序列表。如果你想要它改变它在使用#sort!
。