[Python] json.load()とjson.loads()の違いは何?

JSONは、WebアプリケーションやAPIの通信プロトコルとして非常に重要なフォーマットであり、PythonにはJSONデータを扱うための json モジュールが標準で用意されています。json モジュールには、JSONデータをPythonオブジェクトに変換するための json.load()json.loads() という2つの関数がありますが、これらは何が違うのでしょうか。

目次

json.load()

json.load() は、JSON形式のファイルをPythonオブジェクトに変換するために使用されます。具体的には、以下のように使います。

import json

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

上記の例では、 data.json ファイルを読み込んで、JSONデータをPythonオブジェクトに変換しています。json.load() は、ファイルをオープンし、JSONデータをデシリアライズ(復元)してPythonオブジェクトに変換するため、引数にはファイルオブジェクトが必要です。

json.loads()

json.loads() は、JSON形式の文字列をPythonオブジェクトに変換するために使用されます。具体的には、以下のように使います。

import json

json_data = '{"name": "John", "age": 30, "city": "New York"}'
data = json.loads(json_data)

上記の例では、 json_data 変数にJSON形式の文字列を代入し、json.loads() を使用して、JSONデータをPythonオブジェクトに変換しています。json.loads() は、JSONデータをデシリアライズ(復元)してPythonオブジェクトに変換するため、引数にはJSON形式の文字列が必要です。

json.load()json.loads() の違いは 引数の型

上記のとおり、json.load()json.loads() の違いは、引数の型が異なることです。 json.load() はファイルオブジェクトを引数として受け取り、ファイルからJSONデータを読み込み、Pythonオブジェクトに変換します。一方、 json.loads() は文字列を引数として受け取り、JSONデータをPythonオブジェクトに変換します。つまり、 json.load()ファイル入力に最適化されており、 json.loads()文字列入力に最適化されています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次