| 123456789101112131415161718192021222324252627282930313233343536 |
- from pydantic import BaseModel, Field
- from typing import List
- class Solution(BaseModel):
- """解决方案模型
-
- 表示24点游戏的一个解法
- """
- expression: str = Field(alias="c")
- flag: int = Field(alias="f")
- @classmethod
- def from_dict(cls, data):
- return cls.model_validate(data)
- class GameData(BaseModel):
- """游戏数据模型
-
- 表示24点游戏的一组数据,包含四个数字和对应的解法
- """
- id: int
- num1: int = Field(alias="n1")
- num2: int = Field(alias="n2")
- num3: int = Field(alias="n3")
- num4: int = Field(alias="n4")
- solutions: List[Solution] = Field(alias="s")
- @property
- def no(self):
- return f"{self.num1}_{self.num2}_{self.num3}_{self.num4}"
- @classmethod
- def from_dict(cls, data):
- data['s'] = [Solution.from_dict(sol) for sol in data['s']] # 保持原始JSON键's'的解析
- return cls.model_validate(data)
|