#!/usr/bin/env ruby require 'csv' require 'kakasi' require 'sqlite3' # 区分,よみ,人口,面積,人口密度 -> 区分,よみ,人口,面積,人口密度,ヨミ,yomi csv = CSV.read("yamagata-2022.csv", headers:true) db = SQLite3::Database.new("yamagata.sq3") db.execute_batch(<<~EOF) DROP TABLE IF EXISTS yamagata; CREATE TABLE yamagata(kubun, yomi, pops, area, dens, katakana, ascii); BEGIN; EOF csv.each do |row| values = row.collect{|x| x[-1]} values << Kakasi.kakasi('-HK', row["よみ"]) # さかたし → サカタシ values << Kakasi.kakasi('-Ha', row["よみ"]) # さかたし → sakatashi db.execute("INSERT INTO yamagata VALUES(?,?,?,?,?,?,?)", *values) p row end db.execute("END;")