この記事ではpythonでのJSONデータの読込と
読み込んだJSONから特定の値を取り出す方法を紹介します。
JSONの処理って、そんなに頻度多くなくついつい忘れます。
そのときにすぐ分かるようにするため、この記事を書きます。
ついでに自分への備忘録でもあります。
1. JSON形式について
JSON形式はもともとJavaScriptの表記法を
ベースにしたデータの表記形式です。
今ではJavaScriptだけでなく、共通化されて
pythonなど他の言語にも使用されています。
最近ではAPIとのデータのやりとりによく使用されます。
(楽天APIやNTTのAPI、DBpedia (wikipedia)のAPIなど。)
JSONは 、{キー:値} で括られて配列なども含みます。
簡単なサンプルはこんな感じです。
[{"person1":{"id":"1", "name":"taro"}},
{"person2":{"id":"2","name":"jiro"}}]
2. pythonでJSONを開く
pythonでJSON形式データを開くためには2つの作業が必要です。
- JSONデータを “with open”で開く
- 開いたファイルから“json.load”でJSONを読み込む
ここで注意として
“import json”でモジュールの取り込みが必須。
(”import json”は忘れやすい。)
簡単なサンプルを置いておきます。
import json
with open('test.json', 'r') as f:
x = json.load(f)
print(x)
~~出力~~
[{'person1':{'id':'1', 'name':'taro'}},
{'person2':{'id':'2', 'name':'jiro'}}]
3. JSON内の特定の値を取り出す
ここでは” x = json.load(f) “で取り込んだJSONデータから特定の値を出します。
サンプルでは「taro」という値を出しています。
そのために、json.loadで読み込みたいファイル’test.json’を読み込み、リスト表示→辞書表示→辞書表示としています。
まず、JSONデータが辞書型かリスト型かを事前に”print”などで出力して確認します。
リストなら[0]などで順番を表示し、辞書なら[‘key’]で値を表示させています。
print(x)
~~出力~~
[{'person1':{'id':'1', 'name':'taro'}},
{'person2':{'id':'2', 'name':'jiro'}}]
# xの1つ目のリストを表示
print(x[0])
~~出力~~
{'person1':{'id':'1','name':'taro'}}
# xのキー"person1"の値を表示
print(x[0]['person1'])
~~出力~~
{'id':'1', 'name':'taro'}
# xの"person1"内のキー"name"の値を表示
print(x[0]['person1']['name'])
~~出力~~
taro
まとめ
JSON形式の説明からpythonでの開き方、値の取り方を簡単に説明していきました。
全体をまとめたコードを貼っておきます。
import json
with open('test.json', 'r') as f:
x = json.load(f)
print(x[0]['person1']['name'])
~~出力~~
taro
また、JSON形式をきれいに出力したいなら
こちらの「【python】pprintを使い、整型する【JSON】」をどうぞ。

よりPythonを学びたい方はオススメの一冊を紹介します。
メジャーな本ですが、私も参考にしています。