2014-02-09 103 views
1

我有2个信息的国家数据的csv,我试图将其转换为json格式并将其存储在变量中。有人可以帮我写一个红宝石或JS脚本,使其发生?!编写脚本将我的csv信息转换为JSON格式

目前的数据是在我的电子表格CSV这样的:

code    data 

AW    12.78 

AD    67.45 

AF    95.62 

AO    12.10 

AL    50.52 

而且我想它得到这样的格式:

var countryData = { 
    "AW": 12.78, 
    "AD": 67.45, 
    "AF": 95.62, 
    "AO": 12.10, 
    "AL": 50.52 
}; 
+3

您是否尝试过自己创建解决方案? – siame

回答

1

我把数据文件所谓a.csv

code data 

AW 12.78 

AD 67.45 

AF 95.62 

AO 12.10 

AL 50.52 

需要stdlib之间是CSVJSON

我会做如下使用这些库。

require 'csv' 
require 'json' 

array = [] 

这里是类CSV::Row的一个实例。现在row['code'],row['data']实际上是一个方法调用CSV::Row#[]

CSV.foreach("/home/kirti/workspace/Ruby/a.csv",:skip_blanks => true,:headers => true,:col_sep => " ") do |row| 
    array << [row['code'],row['data'].to_f] 
end 

puts Hash[array].to_json 
# >> {"AW":12.78,"AD":67.45,"AF":95.62,"AO":12.1,"AL":50.52} 

您将获得有关的选项(:skip_blanks,* :头 *,:col_sep)的所有信息,我这里使用的,的CSV::new文档下方。阅读这些。

+0

上面的代码工作100%,但是当我们没有看到他们自己的尝试时,它真的帮助用户给他们一个答案吗? – siame

+0

@steiger可能是OP从未使用过的CSV,所以我试图帮助他,展示如何继续。 –

+0

我从来没有使用过它,所以谢谢你的解释彻底!我将用不同的数据集多次执行此操作,因此将应用您分享的信息。谢谢! – NiBu