python-boxモジュールを使用しJSONデータを読み込み、操作する

スポンサーリンク

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形式の文字列に変換し表示させることができました。

コメント

タイトルとURLをコピーしました