JSONファイルを読み込むときに使用するjson.loadを紹介します。
JSONファイルを読み込む
json.loadの書式は以下の通りです。
1 |
オブジェクト = json.load(ファイルオブジェクト [, エンコーディング]) |
json.loadは辞書オブジェクトを返します。
サンプル
以下のJSONファイル(sample.json)を読み込んでみます。
1 2 3 4 5 6 7 8 9 10 |
{ "ocean": { "Squid":10, "Octopus":8 }, "sky": { "swallow":2, "crow":2 } } |
open関数を使って読み込みモードでファイルを開きます。
1 2 3 4 5 6 7 8 9 10 |
# -*- coding: utf-8 -*- import json # ファイルを読み込みモードでオープン with open('sample.json', 'r') as f: # ファイルから読み込み obj = json.load(f) print obj # {u'sky': {u'crow': 2, u'swallow': 2}, u'ocean': {u'Squid': 10, u'Octopus': 8}} print obj["ocean"] # {u'Squid': 10, u'Octopus': 8} |
JSONを整えて表示する
JSONファイルきれいに表示したいときはjson.dumpsを利用します。
1 2 3 4 5 6 7 8 9 |
# -*- coding: utf-8 -*- import json # ファイルを読み込みモードでオープン with open('sample.json', 'r') as f: # ファイルから読み込み obj = json.load(f) print json.dumps(obj, sort_keys = True, indent = 2) |
上のプログラムを実行すると元のJSONファイル(sample.json)と同じように整形されて表示されます。
よくあるエラー
以下のようなエラーが出る場合は、JSONファイルの書式が間違っている可能性があります。最後の要素に「,」が付いている間違いがよくあるので、注意してください。
1 |
ValueError: Expecting property name: line x column y (char z) |