Python で JSON データを操作する
JSON (JavaScript Object Notation) は、サーバーとクライアント間のデータ交換に使用される軽量データ形式です。Web アプリケーションでデータの送受信によく使用されます。Python には、JSON データの操作を容易にする json
という組み込みモジュールが用意されています。この記事では、JSON オブジェクトの読み取り、書き込み、操作など、Python で JSON データを操作する基本について説明します。
JSONとは何ですか?
JSON は、人間と機械の両方にとって読み書きが簡単なテキストベースの形式です。Python 辞書に似たキーと値のペアで構成されます。一般的な JSON オブジェクトは次のようになります。
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
JSONモジュールのインポート
json
モジュールは Python の標準ライブラリに含まれているため、何もインストールする必要はありません。スクリプトの先頭でインポートするだけです。
import json
JSONデータの読み取り
JSON データは文字列またはファイルから読み取ることができます。文字列から JSON データを解析するには json.loads()
メソッドを使用し、ファイルから JSON データを読み取るには json.load()
を使用します。
文字列からJSONを読み込む
文字列から JSON を読み取るには、JSON 文字列を Python 辞書に変換する json.loads()
メソッドを使用します。
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
ファイルからJSONを読み込む
ファイルから JSON データを読み取るには、json.load()
メソッドを使用します。このメソッドは、ファイルの内容を読み取り、それを Python 辞書に変換します。
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
JSONデータの書き込み
JSON データを文字列またはファイルに書き込むことができます。 json.dumps()
メソッドは Python オブジェクトを JSON 文字列に変換するのに使用され、 json.dump()
は JSON データをファイルに書き込むのに使用されます。
JSON を文字列に書き込む
JSON を文字列に書き込むには、Python 辞書を JSON 文字列に変換する json.dumps()
メソッドを使用します。
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
JSON をファイルに書き込む
JSON データをファイルに書き込むには、json.dump()
メソッドを使用します。このメソッドは Python オブジェクトを受け取り、それを JSON 形式でファイルに書き込みます。
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
JSON データの整形
json.dumps()
メソッドには、JSON データをフォーマットして読みやすくするためのパラメーターがいくつかあります。 indent
パラメーターはインデントに使用するスペースの数を指定し、 sort_keys
パラメーターは出力内のキーをソートします。
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
JSON と Python のデータ型の変換
Python の json
モジュールは、さまざまなデータ型を処理し、JSON と Python 間で変換できます。以下はクイック リファレンスです。
dict
(Python) からobject
(JSON) へlist
(Python) からarray
(JSON) へstr
(Python) からstring
(JSON)int
、float
(Python) からnumber
(JSON)True
、False
(Python) からtrue
、false
(JSON)None
(Python) からnull
(JSON) へ
JSON エラーの処理
JSON を操作しているときに、不正なフォーマットや予期しないデータが原因でエラーが発生することがあります。 json
モジュールは、このような問題が発生すると、JSONDecodeError
などの例外を発生させます。これらのエラーを適切に処理するには、try
および except
ブロックを使用します。
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
結論
JSON データの操作は、特に Web 開発やデータ サイエンスの分野では、Python 開発者にとって基本的なスキルです。json
モジュールは、JSON データの読み取り、書き込み、操作に簡単に使用できるメソッドを提供します。これらのテクニックを習得することで、Python アプリケーションで JSON データを効率的に処理できます。