我正在尝试使用Ruby将CSV文件转换为JSON。在使用Ruby(或任何语言)时,我非常,非常,非常绿色,所以答案可能需要为我愚蠢。将它放在JSON中对我来说似乎是最合理的解决方案,因为我理解在分配与响应中的属性相等的变量时如何使用JSON。如果有更好的方法,请随时教我。
我的CSV格式如下:
Header1,Header,Header3
ValueX,ValueY,ValueZ
我希望能够使用这些数据来说明这一点:
对于标题后第1行中的每个ValueX,检查valueZ是否为> VALUE年。如果是,请执行此操作,如果不这样做的话。我理解如何执行if语句,现在如何将我的信息解析为变量/数组。
这里有什么想法吗?
答案 0 :(得分:2)
require 'csv'
require 'json'
rows = []
CSV.foreach('a.csv', headers: true, converters: :all) do |row|
rows << row.to_hash
end
puts rows.to_json
# => [{"Header1":"ValueX","Header":"ValueY","Header3":"ValueZ"}]
答案 1 :(得分:1)
Here is a first pointer:
require 'csv'
data = CSV.read('your_file.csv', { :col_sep => ',' }
Now you should have the data in data
; you can test in irb.
I don't entirely understand the question:
if z > y
# do this
else
# do that
end
For JSON, you should be able to do JSON.parse()
.
I am not sure what target format JSON requires, probably a Hash.
You can populate your hash with the dataset from the CVS:
hash = Hash.new
hash[key_goes_here] = value_here