python-boxモジュールを使用しJSONデータを読み込み、操作してみます。
今回はpython-boxを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■今回の環境(Python)
今回のPythonはバージョン3.8.5を用いる。(Mac OS)
■python-boxモジュールを使用しJSONデータを読み込み、操作する
では、python-boxモジュールを使用しJSONデータを読み込み、操作するためにスクリプトを書いていきます。
■コード
from box import Box # JSONデータの読み込み json_data = ''' { "name": "鈴木テスト次郎", "age": 30, "address": { "city": "Tokyo", "country": "Japan" }, "hobbies": ["reading", "traveling", "photography"] } ''' data = Box.from_json(json_data) # データのアクセスと操作 print("名前:", data.name) print("年齢:", data.age) print("住所:", data.address.city, data.address.country) print("趣味:", data.hobbies) # データの変更と追加 data.name = "田中太郎" data.hobbies.append("painting") data.occupation = "engineer" # 変更後のデータの表示 print("\n変更後のデータ:") print(data.to_json(indent=4))
まずimportでboxパッケージからBoxクラスをインポートします。次にBoxクラスをfrom_jsonメソッドを使ってJSONデータを読み込んでいます。from_jsonメソッドは、JSON形式の文字列を受け取り、その内容をBoxオブジェクトとして返します。
次に、データへのアクセスと操作を行います。dataオブジェクトは、Boxクラスのインスタンスであり、辞書のようにキーを使用して値にアクセスすることができます。例えば、data.nameは名前を取得し、data.ageは年齢を取得します。また、data.address.cityやdata.address.countryのように、ネストされたオブジェクトにアクセスすることもできます。さらに、リストのようにインデックスを使用してdata.hobbiesの値にアクセスすることもできます。
データの変更や追加も可能です。例えば、data.name = “田中太郎”のように、dataオブジェクトのname属性を変更しています。また、data.hobbies.append(“painting”)のように、hobbiesリストに新しい要素を追加しています。さらに、data.occupation = “engineer”のように、新しい属性を追加することもできます。
最後に、dataオブジェクトをJSON形式の文字列に変換して表示します。to_jsonメソッドを使用し、indentパラメータを指定することで、整形されたJSON文字列を取得します。
■実行・検証
このスクリプトを「j_data01.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、ターミナルから実行してみます。
実行してみると、dataオブジェクトをJSON形式の文字列に変換し表示させることができました。
コメント