原始数据为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更加简单了!