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

PythonでJSON入力から辞書(dict)を作成する方法をわかりやすく解説

Pythonでは、標準ライブラリのjsonモジュールを使うことで、JSONファイルを簡単に解析(パース)できます。このモジュールはJSONデータを読み込み、Pythonの辞書(dict)へと変換します。変換後は、通常の辞書とまったく同じようにキーを指定して値を取得したり、ループ処理したりすることが可能です。

サンプルとなるJSONファイル

例えば、以下のような内容のJSONファイル(data.json)が存在するとします。

{
    "id": "file",
    "value": "File",
    "popup": {
        "menuitem": [
            {"value": "New", "onclick": "CreateNewDoc()"},
            {"value": "Open", "onclick": "OpenDoc()"},
            {"value": "Close", "onclick": "CloseDoc()"}
        ]
    }
}

JSONファイルを読み込んで辞書に変換する

json.load()関数にファイルオブジェクトを渡すことで、JSONデータを読み込み、辞書形式に変換できます。

import json

f = open('data.json')
data = json.load(f)
f.close()

これで、変数dataは通常の辞書として自由に操作できるようになります。例えば、items()メソッドを使えば、すべてのキーと値を次のようにループ処理して取り出せます。

# dataを通常の辞書として使用する
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()'}]}

with文を使ったより安全な書き方

ファイルを開く際は、with文を利用するとclose()の呼び出し忘れを防げるため、より安全で推奨される書き方です。

import json

with open('data.json') as f:
    data = json.load(f)

文字列からJSONを読み込む場合

ファイルではなく、文字列として渡されたJSONデータを解析したい場合は、json.loads()関数を使用します。

import json

json_str = '{"name": "Taro", "age": 25}'
data = json.loads(json_str)
print(data["name"])  # 出力: Taro

また、ネストした構造のJSONも辞書やリストとしてそのままアクセスできます。例えば、上記のサンプルで「New」メニュー項目のonclickの値を取得したい場合は、data["popup"]["menuitem"][0]["onclick"]のように記述するだけでOKです。

  1. Pythonプログラム入門:リストから辞書(dict)を作成する方法

    Pythonでリストのデータをもとに辞書を作成したい場合、「dict」メソッドで空の辞書を生成し、シンプルな反復処理(ループ)と「setdefault」メソッドを組み合わせることで実現できます。setdefaultメソッドは、指定したキーが辞書に存在しない場合にデフォルト値を設定し、存在する場合はそのキーの現在の値を返す便利なメソッドです。キーごとに複数の値をリスト形式で保持したい場合に特に役立ちます。サンプルコード以下に具体的な実装例を示します。my_dict = dict() print(空の辞書が作成されました) my_value_list = [15, 14, 13, 12, 16]

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

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