原始数据为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 linedish_id = /^(\d\d\d\d)/.match(line) #正则匹配前四位数字id,并用id命名文件夹#puts dish_idjson = File.open("dishes/#{dish_id}.json","w+")json.puts(line) #仅生成一行信息 无法生成json格式 Dir.mkdir("dishes/#{dish_id}") #生成文件夹而已Dir.mkdir("dishes/#{dish_id}/images") #生成文件夹而已json.closeend
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更加简单了!