MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Python製のマルチプラットフォームJSONファイルビューワーPyJSONViewerを作った

https://github.com/AtsushiSakai/PyJSONViewer/blob/master/img/img1.png?raw=true

目次

はじめに

最近、

複雑なシミュレーションのログデータや、

複数のプログラミング言語を使ったシステムの

データの受け渡し方法としてJSONファイルを使っています。

 

JSONはTree状のデータ構造を構築することができるので、

シミュレーションの設定データから、

シミュレーションの結果などを

まとめて一つのファイルとしてまとめることができるので、

非常に便利です。

 

また、ほとんどの言語でJSONのパーサは

デフォルトAPIやライブラリとして、

提供されているので、各言語でいちいちファイルデータ解釈用の

パーサを書かなくていいのは非常に便利です。

 

しかし、一つ不満だったのが、

JSONファイルの中身を少し確認したい時の

ビューワーがあまり良いものが見つかりませんでした。

 

はじめは下記のChrome extensionのJSON viewerを使っていたのですが、

chrome.google.com

大きいjsonファイルを読み込もうとすると、

すぐにフリーズしてしまいました。

 

下記のJ and Eというフリーソフトは、

大きなJSONファイルもツリー状に可視化でき、

非常に軽快に動作するのですが、

残念ながらWindowsのみで利用可能で、

MacやLinuxも併用する自分には、

完璧ではありませんでした。

 

その他にも、良さそうなJSONビューワーソフトはありましたが、

ほとんどは有償ソフトウェアでした。

 

そこで、今回、

Python製のマルチプラットフォームJSONファイルビューワーである

PyJSONViewerをOSSとして自作し、GitHubに公開したので、

紹介したいと思います。

 

PyJSONViewer

PyJSONViewerはPython製のJSONファイルビューワーです。

OSSとして、下記で公開しています。

github.com

 

PyJSONViewerは、PythonとPythonのデフォルトモジュールである、

  • tkinter (GUI)

myenigma.hatenablog.com

  • json (JSONパーサ)

19.2. json — JSON エンコーダおよびデコーダ — Python 3.6.5 ドキュメント

  • argparse (コマンドラインオプションパーサ)

myenigma.hatenablog.com

のみを使用しているため、

Pythonのランタイムさえインストールされていれば、

追加ライブラリのインストール無しに利用できます。

 

またPythonさえインストールされていれば良いので、

Mac OS, Window, Linuxのマルチプラットフォームで

利用可能です。

 

OSSなのでもちろんフリーです。

 

また、CUIとGUIの両方から

読み込むJSONファイルを指定できるので、

状況に応じて効率的にJSONファイルを確認できます。

 

また自分のPCでは、

30MBの大きいJSONファイルであっても、

読み込み時に少しディレイがありますが、

問題なく表示できています。

 

ダウンロード

単一のpythonスクリプトで構成されているため、

下記のリポジトリをクローンするか、

zipでダウンロードするだけです。

github.com

 

使い方

使い方としては、

下記の2つの方法でJSONファイルを指定すると、

記事冒頭のスクリーンショットのように、

JSONファイルをツリー状に表示し、

中身のデータを確認することができます。

CUIでJSONファイルを指定する

コンソールから、

下記のコマンドでpyjsonviewer.pyを起動しつつ、

-f オプションでJSONファイルのパスを指定する。

$ python pyjsonviewer.py -f path_to_json_file/sample.json

すると、GUIの画面にJSONツリーが表示されるはずです。

GUIでJSONファイルを指定する。

  • 1 pyjsonviewer.pyを実行する

$ python pyjsonviewer.py

  • 2 File->Openを押すと、ファイル選択ダイアログが起動するのでJSONファイルを選択する

すると、GUIの画面にJSONツリーが表示されるはずです。

 

また、ファイル選択ダイアログの初期ディレクトリは

下記のように -d オプションでも指定できます。

$ python pyjsonviewer.py -d path_to_json_file_dir

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com