はじめに
Python組み込みのjsonモジュールの「loads関数」を使って「JSON文字列」を読み込む方法を解説します。loads関数を使うと、JSONファイルを辞書に変換することができます。
Python組み込みなのでインストール不要。使い方も簡単なので、サクッとJSONを扱いたい方はぜひご覧ください。
環境
この記事は以下の環境で作成しています。
環境 | バージョンなど | 備考 |
Python | 3.9.6 | |
OS | Wiindows11 | Win10でもOKです。 |
loadとloadsの違い
JSONの読み込みには「load」「loads」の2つの関数があります。読み込み対象が「ファイル」か「文字列」かで2つの関数を使い分けます。
今回はJSON「文字列」からの読み込みなので「loads関数」を使用します。
関数名 | 読み込み対象 |
load | JSON「ファイル」 |
loads | JSON「文字列」 |
「読み取り」となると「Parse」を思い浮かべますが、jsonモジュールにParse関数はありません。
※ JSONを「ファイル」から読み取る方法については、こちらの記事をご覧ください。
プログラム概要
今回のプログラムの概要は以下の通りです。
- JSON文字列を辞書に変換
- 辞書データの書き換え・再表示
実行結果
後述の「JSON文字列を読み込むコード」の実行結果です。JSONファイルを辞書型のデータに取り込んで表示しています。
最終行のメールアドレスは、JSONの「Email」を書き換えて、再表示しています。
james@example.com
User
Admin
taro@example.com
全体コード
全体コードは以下の通りです。詳細な内容は後述する「コードのポイント」で解説します。
import json
# JSON文字列を作成します
jsonString = '{ "Email": "james@example.com", \
"Roles": ["User","Admin"] \
}'
# JSON文字列を辞書に読み込みます
dict = json.loads(jsonString)
# 読み込んだ内容にアクセス(表示)します
print( dict["Email"])
print( dict["Roles"][0])
print( dict["Roles"])
# 要素を指定して代入すると、値の書き換えができます
dict["Email"] = "taro@example.com"
print( dict["Email"] )
コードのポイント
loads関数でJSONから辞書にする
loads関数の引数にJSON文字列を渡すと、JSONの内容を辞書型のオブジェクトとして取得できます。
# JSON文字列を辞書に読み込みます
dict = json.loads(jsonString)
辞書にアクセス
辞書の要素名(キー名)には、JSONの変数名がそのまま使われます。そのため辞書のオブジェクトにJSONの変数名を指定することでアクセスできます。
# 読み込んだ内容にアクセス(表示)します
print( dict["Email"])
JSONデータが配列の場合は、要素名の後ろに番号を付けてアクセスしてください。
print( dict["Roles"][0])
print( dict["Roles"])
JSONデータの書き換え
データを書き換えもJSONの変数名を指定して、代入するだけです。
# 要素を指定して代入すると、値の書き換えができます
dict["Email"] = "taro@example.com"
print( dict["Email"] )
まとめ
Python組み込みのjsonモジュールの「load関数」を使って「JSON文字列」を読み込む方法を解説しました。参考になればうれしいです。
お知らせ
3月号の『日経ソフトウェア』はPythonの特集。穴埋め式クイズで学ぶPython入門や、PythonでExcelを動かす方法などが特集されています。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。