PythonでJSON入力を解析する方法をわかりやすく解説
Pythonでは、標準ライブラリのjsonモジュールを使うことで、JSONファイルやJSON形式の文字列を簡単に解析(パース)できます。jsonモジュールはJSONデータを読み込み、辞書型(dict)へ自動的に変換してくれるため、変換後は通常の辞書とまったく同じようにキーや値へアクセスできるのが大きな特徴です。
例として、次のような内容のJSONファイルを考えてみましょう。
{
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}JSONファイルを読み込む方法
上記のJSONファイルをPythonプログラム内で読み込み、キーを順番にループ処理するには、以下のように記述します。
import json
f = open('data.json')
data = json.load(f)
f.close()ポイントはjson.load()関数です。この関数はファイルオブジェクトを受け取り、その中身を解析して辞書型のオブジェクトとして返します。
with文を使ったより安全な書き方
なお、ファイルを開く際にはwith文を使うと、クローズ処理を自動的に行ってくれるため、より安全で推奨される書き方になります。
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)読み込んだデータを辞書として操作する
これで「data」は通常の辞書として扱えるようになりました。items()メソッドを使えば、すべてのキーと値を簡単に取り出せます。
for (k, v) in data.items():
print("Key: " + k)
print("Value: " + str(v))実行結果
上記のコードを実行すると、以下のような出力が得られます。
Key: id
Value: file
Key: value
Value: File
Key: popup
Value: {'menuitem': [{'value': 'New', 'onclick': 'CreateNewDoc()'}, {'value': 'Open', 'onclick': 'OpenDoc()'}, {'value': 'Close', 'onclick': 'CloseDoc()'}]}補足:文字列からJSONを解析する場合
ファイルではなく、APIレスポンスなどのJSON形式の文字列を解析したい場合は、json.loads()を使用します。loadとloadsの違いは以下の通りです。
- json.load():ファイルオブジェクトからJSONを読み込む
- json.loads():文字列(str)からJSONを読み込む
import json
json_str = '{"name": "Taro", "age": 25}'
data = json.loads(json_str)
print(data["name"]) # Taroこのように、Pythonのjsonモジュールを使えば、JSONデータの解析は非常にシンプルに行えます。ネストされた構造も辞書やリストとしてそのまま扱えるため、設定ファイルの読み込みやWeb APIとの連携など、さまざまな場面で活用できます。
-
Matplotlibでキーボード入力を使ってPythonの図(Figure)を閉じる方法
Pythonで表示したMatplotlibの図をキーボード入力で閉じたい場合、plt.pause()メソッドとinput()関数、そしてclose()メソッドを組み合わせることで実現できます。この方法を使えば、ユーザーがEnterキーを押すまで図を表示し続け、任意のタイミングで確実に閉じることが可能です。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。numpyを使ってtとyのデータポイントを作成します。figure()メソッドで新しい図を作成するか、既存の図をアクティブにします。plot()メソッドでtとyのデータポイントをプロットします。プロットにタイトル
-
Python Tkinterでチェックボックスの入力値を取得する方法
チェックボックスウィジェットは、「オン(True)」と「オフ(False)」の2つの状態を持つ入力ウィジェットです。設定の有効・無効の切り替えや、利用規約への同意確認など、特定の値を検証したい場面で幅広く活用されています。ここでは、チェックボックスが選択されたときに、その選択状態(入力値)を取得して出力する方法を紹介します。Tkinterでチェックボックスの値を取得するには、get()メソッドを使用します。このメソッドは、チェックボックスに関連付けられた変数の現在の値を返します。サンプルコード# Tkinterライブラリをインポート from tkinter import * # tkint