Python 3におけるjson.load()とjson.loads()関数の違いは何ですか?

PYTHON3 チュートリアル

Pythonのjson.load()とjson.loads()の違いについて

Pythonには、JSONデータを操作するための便利なモジュールが組み込まれています。その中でも、json.load()とjson.loads()は非常に頻繁に使用される関数です。これらの関数は似た名前を持っていますが、使用するシチュエーションが異なります。本記事では、これらの関数の違いについて詳しく説明し、いくつかの例を通じてその使い方を学びます。

json.load() 関数

json.load()は、ファイルオブジェクトからJSONデータを読み込むための関数です。この関数は、ファイルから直接JSONデータを読み取ってPythonの辞書オブジェクトに変換します。通常、ファイルに保存されているJSONデータを扱う際に使用されます。

import json

# サンプルのJSONファイルを作成
with open('sample.json', 'w') as f:
    json.dump({"name": "Alice", "age": 30}, f)

# json.load()を使用してファイルからデータを読み込む
with open('sample.json', 'r') as f:
    data = json.load(f)

print(data)  # {'name': 'Alice', 'age': 30}

この例では、まずPythonの辞書をJSON形式でファイルに保存し、その後json.load()を使ってファイルからデータを読み込んでいます。

json.loads() 関数

json.loads()は、文字列からJSONデータを読み込むための関数です。この関数は、JSON形式の文字列をPythonの辞書オブジェクトに変換します。通常、ネットワークから取得したJSONデータや、テキストとして扱われるJSONデータを処理する際に使用されます。

import json

# JSON形式の文字列を定義
json_string = '{"name": "Bob", "age": 25}'

# json.loads()を使用して文字列からデータを読み込む
data = json.loads(json_string)

print(data)  # {'name': 'Bob', 'age': 25}

この例では、JSON形式の文字列を直接json.loads()に渡してPythonの辞書に変換しています。

使用シーンの違い

json.load()とjson.loads()の主な違いは、入力として受け取るデータの形式です。json.load()はファイルオブジェクトを受け取り、json.loads()は文字列を受け取ります。この違いを理解することは、適切にJSONデータを処理するために非常に重要です。

サンプルコードの比較

以下は、両方の関数を比較するためのサンプルコードです。これにより、使用シチュエーションの違いをより明確に理解できるでしょう。

import json

# ファイルにJSONデータを書き込む
with open('data.json', 'w') as f:
    json.dump({"city": "Tokyo", "population": 13929286}, f)

# ファイルから読み込む場合
with open('data.json', 'r') as f:
    file_data = json.load(f)
print(file_data)  # {'city': 'Tokyo', 'population': 13929286}

# 文字列から読み込む場合
json_string = '{"country": "Japan", "capital": "Tokyo"}'
string_data = json.loads(json_string)
print(string_data)  # {'country': 'Japan', 'capital': 'Tokyo'}

この例では、ファイルからデータを読み込む方法と、文字列からデータを読み込む方法の両方を示しています。目的に応じて、どちらの関数を使用するかを決定することができます。

まとめ

json.load()とjson.loads()は、PythonでJSONデータを扱う際に不可欠な関数です。ファイルからデータを読み込む場合はjson.load()を使用し、文字列からデータを読み込む場合はjson.loads()を使用します。これらの違いを理解して、適切な場面でこれらの関数を活用しましょう。

json.load()関数は、JSON形式のファイルを読み込んでPythonのデータ構造に変換するために使用されます。一方、json.loads()関数は、JSON形式の文字列をPythonのデータ構造に変換するために使用されます。つまり、json.load()はファイルを読み込み、json.loads()は文字列を処理します。json.load()はファイルオブジェクトを引数として受け取りますが、json.loads()は文字列を引数として受け取ります。

購読
通知
0 Comments
Inline Feedbacks
View all comments