【Copilotの答えの始め】

 

Pythonでクラスのインスタンスの配列をJSONにシリアライズし、JSONからデシリアライズする方法について説明します。

クラスの定義

まず、シンプルなクラスを定義します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def to_dict(self):
        return {
            "name": self.name,
            "age": self.age
        }

    @staticmethod
    def from_dict(data):
        return Person(data['name'], data['age'])

インスタンスの配列をJSONにシリアライズ

次に、クラスのインスタンスの配列をJSONにシリアライズします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import json

# クラスのインスタンスの配列を作成
people = [Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35)]

# 辞書の配列に変換
people_dict = [person.to_dict() for person in people]

# JSONにシリアライズ
people_json = json.dumps(people_dict)
print(people_json)  # 出力: [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}, {"name": "Charlie", "age": 35}]

JSONからインスタンスの配列にデシリアライズ

次に、JSONからクラスのインスタンスの配列にデシリアライズします。

1
2
3
4
5
6
7
8
# JSONから辞書の配列にデシリアライズ
people_dict = json.loads(people_json)

# 辞書の配列からクラスのインスタンスの配列に変換
people = [Person.from_dict(data) for data in people_dict]

for person in people:
    print(f"Name: {person.name}, Age: {person.age}")

このコード例では、クラスのインスタンスの配列をJSON形式にシリアライズし、再度JSONからクラスのインスタンスの配列にデシリアライズする方法を示しました。to_dictメソッドとfrom_dictスタティックメソッドを使用することで、辞書形式とクラスのインスタンスの間の変換が簡単に行えます。

 

【Copilotの答えの終わり】

 

 

 

 

冬色に黒より黒き黒の帽