今回は、JSON ファイルを扱う方法を書きます。
巨大な JSON ファイルを扱うのは、なかなか大変です。
そこで、効率よく扱うための方法を調べたので、実際にやっていきます。
JSONファイルの準備
サンプルとして使う JSON ファイルを準備します。
e-Statのユーザ登録
政府が公開してるデータを使います。データのダウンロードには、ユーザ登録が必要です。メールアドレスがあれば登録できます。
以下のページにアクセスします。
www.e-stat.go.jp
右上にある新規登録をクリックします。
ユーザID(E-mailアドレス)を入力して仮登録ボタンをクリックします。
すると、メールで、本登録用の URL が送られてきます。そこにアクセスして、ログインパスワードを決めると本登録が完了します。
e-StatのアプリケーションIDを取得する
ダウンロードする前に、対象のデータについて、アプリケーション ID を取得する必要があります。おそらく、サーバの負荷を考慮して、制限を行っているのだと思います。
ログインしてマイページにアクセスします。
続いて、「API機能(アプリケーションID発行)」をクリックします。
あまり分かっていませんが、アクセス元を特定するための情報だと思います。
名称は任意で、URL は、個人利用の場合は、「http://test.localhost/」を入力すればいいみたいなので、そのまま入力します。入力できたら「発行」をクリックします。
すると、アプリケーション ID が発行されたので、これをコピーしておきます。
e-Statのデータをダウンロードする
では、データをダウンロードしてみます。
何でもいいのですが、ここでは、「令和2年国勢調査」の男女別人口のデータをダウンロードしてみます。
一応、URL を貼っておきます。
https://www.e-stat.go.jp/stat-search/database?page=1&layout=datalist&toukei=00200521&bunya_l=02&tstat=000001136464&cycle=0&tclass1=000001136466&tclass2val=0
ダウロードしたいデータの「API」をクリックします。
すると、API リクエスト URL が表示されるので、JSON形式を選んで、「URLをコピー」をクリックします。
API リクエスト URL に、先ほど取得したアプリケーション ID を挿入します。具体的には、以下の XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX を、アプリケーション ID に差し替えます。
http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?appId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lang=J&statsDataId=0003445078&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y§ionHeaderFlg=1&replaceSpChars=0
この URL をブラウザのアドレスバーにコピペすると、JSON 形式の内容が表示されるので、右クリックして「名前を付けて保存」で、ダウンロードできます。
Git BASH などのコンソールで、curl コマンドを使ってダウンロードする方法は以下です。
$ curl -o getStatsData.json "http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?appId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lang=J&statsDataId=0003445078&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y§ionHeaderFlg=1&replaceSpChars=0"
これで JSON ファイルの準備が出来ました。
ちなみに、ダウロードした JSON ファイルは、1,592,704 バイトです。
JSONファイルの整形(VSCode)
JSON ファイルをエディタで開くと分かりますが、改行がありません。
このままでは何かと扱いにくいので、JSON ファイルを整形します。
VSCode で JSON ファイルを開き、右クリックして「ドキュメントのフォーマット」をクリックします。
整形されて見やすくなりました。122,712行あります。
GUIツール
先に結論を書いておくと、企業でも使えるフリーな JSON ファイルビューアは見つかりませんでした。
J_and_E は、1MB以上の JSON ファイルでは不安定でした。
Dadroit JSON Viewer は性能は素晴らしいですが、商用利用不可です。
Excel のデータベース機能で取り込む方法もありますが、決まった形式(構造を理解している形式)を扱うには悪くなかったですが、柔軟にデータを見たいという用途には合わないと思いました。
JSONファイルビューア「J_and_E」
検索してみると、JSON ファイルビューアがいくつかヒットします。
Chrome の拡張機能で実装されてるものや、Microsoft Store(有料)からダウンロードできるものがありました。これらは、会社で使用することを想定すると、情報流出や、ライセンスの問題から、手が出しにくいです。
そこで、普通の国産のフリーソフトの以下が見つかりました。
forest.watch.impress.co.jp
解凍するだけで使えて(起動したときに .NET のインストールが必要だったかも)、ライセンス的にも商用利用も問題ありませんでした。
機能としては、自動で JSON ファイルの整形を行ってくれる機能はありますが、特別便利な機能はありませんでした。でも、普通に使いやすいですし、対象の JSON ファイルの概要を把握するには十分に使えると感じました。
あと、2016年に開発は止まってるようで、今後の改善は見込めないと思います。
ただ、ちょっと大きい JSON ファイル(26MB)では、ハングしてしまって、動きませんでした。1MB ぐらいまでの小さい JSON ファイルなら、十分使えるソフトだと思います。
Dadroit JSON Viewer
J & E と似たような外観の Dadroit JSON Viewer を見つけました。
dadroit.com
残念ながら商用利用不可ですが、年間 98ドル払えば、企業でも使用できます。
こちらも少し使ってみました。大容量の JSON ファイルを扱えることや、高速性をアピールしているだけあって、J & E に比べると、大きい JSON ファイル(26MB)でも全く問題なく扱えますし、安定感があります。
個人利用なら、50MB までの JSON ファイルが扱えるようです。年間 98ドル払うと、2GBまでのファイルが扱えるようです。
全て展開したり、全て折りたたんだり、次のレベルを全て展開する、など、とても便利です。
CSV、XML に変換する機能もありますし、正規表現での検索もあります。
個人で使うなら、このソフトがいいと思います。
CUIツール
jq
jq という、Linux で有名な JSON ファイルを扱うツールがあります。
長くなってきたので、jq の紹介は次回にします。
おわりに
今回は、JSON ファイルを扱う方法として、e-Stat からの JSON ファイルのダウンロード方法と、JSON ファイルビューアを紹介しました。
次回は、JSON ファイルを CUI で扱うツール「jq」を紹介します。
最後になりましたが、エンジニアグループのランキングに参加中です。
気楽にポチッとよろしくお願いいたします🙇
今回は以上です!
最後までお読みいただき、ありがとうございました。