【python】JSONの処理と特定の値の取り方

Python

この記事では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】pprintを使い、整型する【JSON】
pythonで使用するpprintの使い方を紹介します。pprintはpythonのVer3.8以上を対象にしています。JSON形式のデータをすっきりと出力するなら、この記事でpprintを使いこなしましょう。

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

O’REILLY 入門 Python3

タイトルとURLをコピーしました