Python
 Computer >> コンピューター >  >> プログラミング >> Python

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との連携など、さまざまな場面で活用できます。

  1. Matplotlibでキーボード入力を使ってPythonの図(Figure)を閉じる方法

    Pythonで表示したMatplotlibの図をキーボード入力で閉じたい場合、plt.pause()メソッドとinput()関数、そしてclose()メソッドを組み合わせることで実現できます。この方法を使えば、ユーザーがEnterキーを押すまで図を表示し続け、任意のタイミングで確実に閉じることが可能です。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。numpyを使ってtとyのデータポイントを作成します。figure()メソッドで新しい図を作成するか、既存の図をアクティブにします。plot()メソッドでtとyのデータポイントをプロットします。プロットにタイトル

  2. Python Tkinterでチェックボックスの入力値を取得する方法

    チェックボックスウィジェットは、「オン(True)」と「オフ(False)」の2つの状態を持つ入力ウィジェットです。設定の有効・無効の切り替えや、利用規約への同意確認など、特定の値を検証したい場面で幅広く活用されています。ここでは、チェックボックスが選択されたときに、その選択状態(入力値)を取得して出力する方法を紹介します。Tkinterでチェックボックスの値を取得するには、get()メソッドを使用します。このメソッドは、チェックボックスに関連付けられた変数の現在の値を返します。サンプルコード# Tkinterライブラリをインポート from tkinter import * # tkint