Python_jsonライブラリで使用頻度が高い標準メソッド10選


## Python_jsonライブラリで使用頻度が高い標準メソッド10選
- **用途**: JSON形式のデータの読み書き。
- **例**: `json.dumps`, `json.loads`.

```python
import json
```

## 使用率が高いメソッド10選

1. **`json.dumps(obj)`**:  
   PythonオブジェクトをJSON文字列に変換します。
    ```python
    data = {"name": "Alice", "age": 25}
    json_str = json.dumps(data)
    print(json_str)  # {"name": "Alice", "age": 25}
    ```

2. **`json.loads(s)`**:  
   JSON文字列をPythonオブジェクトに変換します。
    ```python
    json_str = '{"name": "Alice", "age": 25}'
    data = json.loads(json_str)
    print(data)  # {'name': 'Alice', 'age': 25}
    ```

3. **`json.dump(obj, fp)`**:  
   PythonオブジェクトをJSON形式でファイルに書き込みます。
    ```python
    data = {"name": "Alice", "age": 25}
    with open("data.json", "w") as f:
        json.dump(data, f)
    ```

4. **`json.load(fp)`**:  
   JSON形式のファイルをPythonオブジェクトとして読み込みます。
    ```python
    with open("data.json", "r") as f:
        data = json.load(f)
    print(data)
    ```

5. **`json.JSONEncoder`**:  
   カスタムエンコーダーでPythonオブジェクトをJSONに変換します。
    ```python
    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))
    ```

6. **`json.JSONDecoder`**:  
   JSON文字列のデコードをカスタマイズします。
    ```python
    decoder = json.JSONDecoder()
    print(decoder.decode('{"name": "Alice", "age": 25}'))
    ```

7. **`indent` 引数**:  
   `dumps` または `dump` に使用して、整形されたJSONを生成します。
    ```python
    data = {"name": "Alice", "age": 25}
    print(json.dumps(data, indent=4))
    ```

8. **`sort_keys` 引数**:  
   `dumps` または `dump` に使用して、キーをソートしてJSONを生成します。
    ```python
    data = {"b": 1, "a": 2}
    print(json.dumps(data, sort_keys=True))
    ```

9. **`separators` 引数**:  
   JSON文字列の区切り文字をカスタマイズします。
    ```python
    data = {"name": "Alice", "age": 25}
    print(json.dumps(data, separators=(",", ":")))
    ```

10. **`ensure_ascii` 引数**:  
    ASCII以外の文字をエスケープするかどうかを指定します。
    ```python
    data = {"name": "アリス"}
    print(json.dumps(data, ensure_ascii=False))  # {"name": "アリス"}
    ```
# 用語説明

## 1. エンコード (Encode)
**エンコード**とは、データや情報を特定のフォーマットに変換する処理のことを指します。  
### 主な用途:
- **文字列のバイト列変換**（例: UTF-8, Base64）
- **画像・動画形式への圧縮**（例: JPEG, MP4）

### 例:
```python
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デコード
```python
import base64

encoded = b"SGVsbG8gd29ybGQh"  # Base64でエンコードされたデータ
decoded = base64.b64decode(encoded).decode("utf-8")
print(decoded)  # Hello world!
```

## 3. ダンプ (Dump)
**ダンプ**は、プログラム内のデータや構造を外部に出力する処理を指します。

### 主な用途:
**デバッグ**: プログラム内の状態やデータを確認するために内容を出力。
**永続化**: データ構造やオブジェクトをファイル形式で保存して後で再利用可能にする。
### 具体例:
#### JSON形式でデータをダンプ
```python
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}
```