JSON ファイルの書式の点検は Python 辺りで行うのが手軽2020年11月17日 13時45分58秒

JSON 形式のファイルは随分とあちこちに見られる様になった。 JSON は 「JavaScript Object Notation」略で、それこそ JavaScript オブジェクトを記述するための形式になる。

検索をすると、JSON ファイルの書式を点検するサイトなどがある。手元で簡単に使えるコマンドはと思って探してみたが、何処でも入っていて、簡単に使えると言った点で Python が便利だった。Python 自体だったら、大体何処にも入っている昨今、一々専用の JSON 点検用のプログラムを入れるのも手間が掛かる。

「json」 モジュールを読み込み、json.load() にファイルデスクリプタを渡せば良い。

用意したファイルは good.json と bad.json ファイル。 bad.json ファイルでは意図的にカンマを除いている。

% cat good.json 
{
    "key1": "value1",
    "key2": "value2"
}
% cat bad.json 
{
    "key1": "value1"
    "key2": "value2"
}
これを python で読み込む。
% python3.7
Python 3.7.9 (default, Oct  3 2020, 01:27:45) 
[Clang 8.0.1 (tags/RELEASE_801/final 366581)] on freebsd12
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> json.load(open("good.json"))
{'key1': 'value1', 'key2': 'value2'}
>>> json.load(open("bad.json"))
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/local/lib/python3.7/json/__init__.py", line 296, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/local/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 3 column 5 (char 27)
一応、三行目にカンマが抜けていると教えてくれる。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/11/17/9317476/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。