階層構造JSONファイルの作成

1.はじめに

仕事や趣味でいろいろなデータを扱いますが、プログラミングで扱うデータ形式も多種多様でデータベース、テキスト、csv、xml、json形式など 思い付くだけで数十種類でてきます。データの見える化 (可視化) をやりたくて階層構造のJSON形式のファイルを扱う必要性があり、 元データ収集・編集 ⇒ Excelでデータ作成 ⇒ CSV出力 ⇒ 階層構造のJSONファイルへ変換出力と言ったステップでJSONファイルを作成して見ましたので紹介致します。

2.階層構造CSVtoJSONコンバータ

最初は、テキストエディタで手作業でJSONファイルを作成しょうと試みましたが、{}の対応付けや[,などの挿入漏れなど ミスすることが多くてデータを読み込むとエラーで動かないことの連続でした。何とか効率良く元データより階層構造の JSON形式のファイルを作成することができないものかとネット検索しても意図したものを見つけ出すことが出来ませんでした。 そこで今回、試行錯誤してExcel VBAで作成した「階層構造CSVtoJSONコンバータ」によるデータ作成手順をまとめて見ました。

階層構造のJSONファイルとは、親、子、孫、曾孫・・・といった階層構造のデータ形式のァイルです。

2-1.データの収集について

まずは、目的とすべき元となるデータを収集しなければなりません。データの入手や収集手段はいろいろあると思いますが、 1回限りでのみ利用する場合や不定期、日次、週次、月次など継続的に利用する場合に応じて効率良い方法を選択する必要があります。 企業では自社内の各種システムにて収集や加工・編集などができるツール類もあると思いますが、個人ではなかなか揃えられません。 尚、今回は小規模なデータを扱うことを前提としているので効率的なデータの収集方法などについては別の機会にでも考えていきたいと 思います。ここでは、「階層構造CSVtoJSONコンバータ」の説明のためのテストデータを利用しての手順について説明します。

2-2.作成手順

    (1)元データの準備 (テスト用に鳥類目録データの一部を利用)
    (2)Excelで元データを利用して、階層構造のデータ表を作成する。
       ※【お願い】ファイルの終端判定のため、A列の末尾のセルにEOFと追記して下さい。
    (3)Excelで名前を付けて保存でcsv(カンマ区切り)として出力する。
    (4)階層構造CSVtoJSONコンバータ.xlsmのVBAマクロを開く。
    (5)変換ボタンをクリックして、CSV出力したファイル選択すると、JSONファイルとして出力される。
    (6)出力されたJSONファイルをメモ帳などのテキストエディタで確認する。
階層構造のデータ表の作成
出力されたCSVファイル
コンバータによる変換
出力されたJSONファイルの確認
{
		"name":"鳥類",
		"children":[{
			"name":"キジ目",
			"children":[{
				"name":"キジ科",
				"children":[{
					"name":"エゾライチョウ",
					"rank":""
			},{
					"name":"ライチョウ",
					"rank":""
			},{
					"name":"ヤマドリ",
					"rank":""
			},{
					"name":"キジ",
					"rank":""
			}]
		}]
	},{
			"name":"カモ目",
			"children":[{
				"name":"カモ科",
				"children":[{
					"name":"リュウキュウガモ",
					"rank":""
			},{
					"name":"サカツラガン",
					"rank":""
			},{
					"name":"ヒシクイ",
					"rank":""
			},{
		},{

             ~ 中略 ~

			},{
					"name":"ゴマフスズメ",
					"rank":""
			},{
					"name":"ミヤマシトド",
					"rank":""
			},{
					"name":"キガシラシトド",
					"rank":""
			},{
				"name":"サバンナシトド",
				"rank":""
				}]
			}]
		}]
}

以上で階層構造JSONファイルの作成は完了です。元となるデータの準備と階層構造のデータ表の作成が出来れば自動作成するので作業の効率化が図れます。

3.コンバータの配布

階層構造CSVtoJSONコンバータとサンプルで使用したテストデータを配布致します。下記からダウンロードして下さい。 Excel VBAで作成した本コンバータのソースコードは、試行錯誤して無理くり出力結果から調整したため、ソースコードが汚くて 参考になりません。VBAでなくてpythonなどで作った方が簡潔ですっきりしたコードのものができるんじゃないかと思います。改造は自由に行って頂いてかまいません。

本コンバータは、Microsoft 365(Excel2016)で作成し動作確認しています。動作確認未検証ですが、Excel2007以降であれば動作すると思います。

ダウンロード

■関連記事
・日本鳥類目録分類図の可視化
・日本哺乳類目録分類図の可視化
・日本海産魚類目録分類図の可視化

コメント

このブログの人気の投稿

Excelアドインで日本語形態素解析

HSPでコマンドプロンプトを制御する

TOP