PythonでJSONファイルを読み込む方法

JSONファイルを読み込むときに使用するjson.loadを紹介します。

JSONファイルを読み込む

json.loadの書式は以下の通りです。

オブジェクト = json.load(ファイルオブジェクト [, エンコーディング])

json.loadは辞書オブジェクトを返します。

サンプル

以下のJSONファイル(sample.json)を読み込んでみます。

{
  "ocean": {
    "Squid":10, 
    "Octopus":8
  },
  "sky": {
    "swallow":2, 
    "crow":2
  }
}

open関数を使って読み込みモードでファイルを開きます。

# -*- 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を利用します。

# -*- 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ファイルの書式が間違っている可能性があります。最後の要素に「,」が付いている間違いがよくあるので、注意してください。

ValueError: Expecting property name: line x column y (char z)

イベント

2017/12/05(火)
Design Thinking Square