ruby csv生成json数据

10 篇文章 0 订阅

原始数据为csv文件:

1001,夹饼回锅肉,1,份,28,猪肉、蒜苔、夹饼,
1002,香芋地瓜球,1,例,22,地瓜,
1003,腰果虾仁,1,例,38,虾仁、腰果、西芹,
1004,鲍汁茄花,1,例,18,,

要求:

生成dishes文件夹 内部生成 id号.json 文件, 并生成一个 id号 文件夹,里面有一个images文件夹

用ruby原始方法:

File.open("fake_dishes.csv") do |file|
	Dir.mkdir("dishes")
	file.each_line do |line|
		#puts line
		dish_id = /^(\d\d\d\d)/.match(line)  #正则匹配前四位数字id,并用id命名文件夹
		#puts dish_id
		json = File.open("dishes/#{dish_id}.json","w+")
		json.puts(line)             #仅生成一行信息 无法生成json格式        
		Dir.mkdir("dishes/#{dish_id}")   #生成文件夹而已
		Dir.mkdir("dishes/#{dish_id}/images")   #生成文件夹而已
		json.close
	end
end

用ruby内置的csv方法:

require 'csv'
Dir.mkdir("dishes")
CSV.open('fake_dishes.csv', 'r') do |file|
	json = File.open("dishes/#{file[0]}.json","w+")
	json.puts( "
{
    \"id\": #{file[0]},
    \"name\": \"#{file[1]}\",
    \"categoryMenu\": #{file[2]},
    \"unit\": \"#{file[3]}\",
    \"price\": #{file[4]},
    \"main\": \"#{file[5]}\",
    \"adjuvant\": \"#{file[6]}\"
}
	")
	Dir.mkdir("dishes/#{file[0]}")      #生成文件夹而已
	Dir.mkdir("dishes/#{file[0]}/images")   #生成文件夹而已
end

可以看出 用csv方法使得生成json更加简单了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值