我正在将dataclasses项目中现有的转换为pydantic-dataclasses,我使用这些dataclasses来表示我需要编码和解析 json 的模型。
这是我当前方法的一个示例,该方法对于我的用例来说不够好,我有一个类A,我想将其转换为字典(稍后转换为 json)并从该字典中读取。但我能找到的将 json 解析回模型的唯一方法给了我底层BaseModel而不是dataclass.
请注意,我使用该asdict函数将 a 转换dataclass为 a dict,因为它是用来pydantic_encoder将 a 转换dataclass为 json 的,并使用pydantic_encoder文档建议的将 a 转换pydantic-dataclass为 json:
https: //pydantic-docs.helpmanual.io/usage /数据类/
from dataclasses import asdict
from pydantic.dataclasses import dataclass
from pydantic import BaseModel
@dataclass
class A:
x: str
a = A("string")
a_dict = asdict(a)
parsed_a = A.__pydantic_model__.parse_obj(a_dict)
print(f"type of a: {type(a)}")
print(f"type of parsed_a: …Run Code Online (Sandbox Code Playgroud)