Pythonでjsonモジュールのエンコード・デコードできるデータ型

Pythonのjsonモジュールは、JSON形式のデータをエンコード(PythonデータからJSON文字列へ変換)およびデコード(JSON文字列からPythonデータへ変換)するために使用されます。jsonモジュールは、以下のPythonのデータ型をエンコードおよびデコードすることができます:

  1. 辞書(Dictionary): JSONオブジェクトはPythonの辞書として表現されます。キーと値のペアを持つデータ構造です。

    python
    # エンコード
    data = {"name": "John", "age": 30}
    json_data = json.dumps(data)
    
    # デコード
    decoded_data = json.loads(json_data)
    
  2. リスト(List): JSON配列はPythonのリストとして表現されます。順序付きの要素の集合です。

    python
    # エンコード
    data = [1, 2, 3, 4, 5]
    json_data = json.dumps(data)
    
    # デコード
    decoded_data = json.loads(json_data)
    
  3. 整数と浮動小数点数: JSONは整数と浮動小数点数をサポートしており、Pythonでもそのままエンコードおよびデコードできます。

    python
    # エンコード
    data = 42
    json_data = json.dumps(data)
    
    # デコード
    decoded_data = json.loads(json_data)
    
  4. 文字列(String): JSON文字列はPythonの文字列として表現されます。ダブルクォートで囲まれた文字列です。

    python
    # エンコード
    data = "Hello, World!"
    json_data = json.dumps(data)
    
    # デコード
    decoded_data = json.loads(json_data)
    
  5. 真偽値(Boolean): JSONはtruefalseを真偽値としてサポートしており、Pythonでも同様にエンコードおよびデコードできます。

    python
    # エンコード
    data = True
    json_data = json.dumps(data)
    
    # デコード
    decoded_data = json.loads(json_data)
    
  6. null: JSONのnullはPythonのNoneとして表現されます。

    python
    # エンコード
    data = None
    json_data = json.dumps(data)
    
    # デコード
    decoded_data = json.loads(json_data)
    

これらはJSONデータの基本的なデータ型であり、jsonモジュールを使用してPythonとJSONデータを変換する際に使用されます。ただし、jsonモジュールはPythonのカスタムオブジェクトや一部の特殊なデータ型(例:datetimeオブジェクト)を自動的にエンコードおよびデコードすることはできません。これらの場合、カスタムのエンコーダーおよびデコーダーを定義する必要があります。