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です。
-
Pythonプログラム入門:リストから辞書(dict)を作成する方法
Pythonでリストのデータをもとに辞書を作成したい場合、「dict」メソッドで空の辞書を生成し、シンプルな反復処理(ループ)と「setdefault」メソッドを組み合わせることで実現できます。setdefaultメソッドは、指定したキーが辞書に存在しない場合にデフォルト値を設定し、存在する場合はそのキーの現在の値を返す便利なメソッドです。キーごとに複数の値をリスト形式で保持したい場合に特に役立ちます。サンプルコード以下に具体的な実装例を示します。my_dict = dict() print(空の辞書が作成されました) my_value_list = [15, 14, 13, 12, 16]
-
Python Tkinterでチェックボックスの入力値を取得する方法
チェックボックスウィジェットは、「オン(True)」と「オフ(False)」の2つの状態を持つ入力ウィジェットです。設定の有効・無効の切り替えや、利用規約への同意確認など、特定の値を検証したい場面で幅広く活用されています。ここでは、チェックボックスが選択されたときに、その選択状態(入力値)を取得して出力する方法を紹介します。Tkinterでチェックボックスの値を取得するには、get()メソッドを使用します。このメソッドは、チェックボックスに関連付けられた変数の現在の値を返します。サンプルコード# Tkinterライブラリをインポート from tkinter import * # tkint