Python_jsonライブラリで使用頻度が高い標準メソッド10選
- 用途: JSON形式のデータの読み書き。
-
例:
json.dumps
,json.loads
.
import json
使用率が高いメソッド10選
-
json.dumps(obj)
:
PythonオブジェクトをJSON文字列に変換します。data = {"name": "Alice", "age": 25} json_str = json.dumps(data) print(json_str) # {"name": "Alice", "age": 25}
-
json.loads(s)
:
JSON文字列をPythonオブジェクトに変換します。json_str = '{"name": "Alice", "age": 25}' data = json.loads(json_str) print(data) # {'name': 'Alice', 'age': 25}
-
json.dump(obj, fp)
:
PythonオブジェクトをJSON形式でファイルに書き込みます。data = {"name": "Alice", "age": 25} with open("data.json", "w") as f: json.dump(data, f)
-
json.load(fp)
:
JSON形式のファイルをPythonオブジェクトとして読み込みます。with open("data.json", "r") as f: data = json.load(f) print(data)
-
json.JSONEncoder
:
カスタムエンコーダーでPythonオブジェクトをJSONに変換します。class CustomEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, set): return list(obj) return super().default(obj) data = {"set_data": {1, 2, 3}} print(json.dumps(data, cls=CustomEncoder))
-
json.JSONDecoder
:
JSON文字列のデコードをカスタマイズします。decoder = json.JSONDecoder() print(decoder.decode('{"name": "Alice", "age": 25}'))
-
indent
引数:
dumps
またはdump
に使用して、整形されたJSONを生成します。data = {"name": "Alice", "age": 25} print(json.dumps(data, indent=4))
-
sort_keys
引数:
dumps
またはdump
に使用して、キーをソートしてJSONを生成します。data = {"b": 1, "a": 2} print(json.dumps(data, sort_keys=True))
-
separators
引数:
JSON文字列の区切り文字をカスタマイズします。data = {"name": "Alice", "age": 25} print(json.dumps(data, separators=(",", ":")))
-
ensure_ascii
引数:
ASCII以外の文字をエスケープするかどうかを指定します。data = {"name": "アリス"} print(json.dumps(data, ensure_ascii=False)) # {"name": "アリス"}
用語説明
1. エンコード (Encode)
エンコードとは、データや情報を特定のフォーマットに変換する処理のことを指します。
主な用途:
- 文字列のバイト列変換(例: UTF-8, Base64)
- 画像・動画形式への圧縮(例: JPEG, MP4)
例:
text = "こんにちは"
encoded_text = text.encode("utf-8")
print(encoded_text) # b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'
2. デコード (Decode)
デコードは、エンコードされたデータを元の形式に戻す処理のことです。
主な用途:
- 文字列の復元: バイト列やエンコードされたデータを元の文字列形式に戻す。
- 圧縮データの復元: 特定の形式でエンコードされたデータを復元する。
具体例:
Base64デコード
import base64
encoded = b"SGVsbG8gd29ybGQh" # Base64でエンコードされたデータ
decoded = base64.b64decode(encoded).decode("utf-8")
print(decoded) # Hello world!
3. ダンプ (Dump)
ダンプは、プログラム内のデータや構造を外部に出力する処理を指します。
主な用途:
デバッグ: プログラム内の状態やデータを確認するために内容を出力。
永続化: データ構造やオブジェクトをファイル形式で保存して後で再利用可能にする。
具体例:
JSON形式でデータをダンプ
import json
# データの定義
data = {"name": "Alice", "age": 30}
# JSONファイルにダンプする
with open("data.json", "w") as f:
json.dump(data, f) # データをJSON形式で保存
# ダンプしたデータを読み込む
with open("data.json", "r") as f:
loaded_data = json.load(f) # JSONから元のデータ形式を復元
print(loaded_data) # {'name': 'Alice', 'age': 30}