はてだBlog(仮称)

私的なブログど真ん中のつもりでしたが、気づけばWebサイト系のアプリケーション開発周りで感じたこと寄りの自分メモなどをつれづれ述べています。2020年6月現在、Elasticsearch、pandas、CMSなどに関する話題が多めです。...ですが、だんだんとより私的なプログラムのスニペット置き場になりつつあります。ブログで述べている内容は所属組織で販売している製品などに関するものではなく、また所属する組織の見解を代表するものではありません。

手作りJSONファイルのフォーマットを切り分け確認(python -m json.tool)

手作りしたJSONファイルのフォーマットがJSON形式として間違っていないかを、そんなことをせざるを得ないような環境で、できるだけ単純に確認する方法を編み出さねばならん状況。

広い宇宙の中の地球のこの世界の片隅でしか発生しないシチュエーション。

結局のところ、なんとなくインストールされたようなlinuxに入っているコマンドを使うという案に至る。

python(とその標準ライブラリjson)を使う、という案だ。

例えば、

echo '{"json":"obj"}' | python3 -m json.tool

cat foo.json | python3 -m json.tool

という塩梅で標準入力にJSONファイルを食わせてやる。

ここで、 形式エラーなら、標準エラーに

echo '{a"json":"obj"}' | python3 -m json.tool   ※「a」が違反
Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

のようにエラー系のメッセージ(ErrorとかExpecting... なんとか)が出る。

エラーでなければ、改行などが整形されたJSONの内容が標準出力に帰ってくる。

シェル芸に長けた人やコンパイル屋さんだともっとエレガントな方法を思いつくだろうなという気がした。

ただ、新しい技として覚えたりしなくて良いという意味では、今回の例はなかなかのモノである気がする。

手段を問わないというよりは、イケテナイのは重々承知だが他になくね?という、爪の先に火を灯すような切なさを伴う、ワビサビがあると思うのだがどうだろう。