我正在尝试将嵌套的 dict/json 中的值映射到我的 Pydantic 模型。对我来说,当我的 json/dict 具有扁平结构时,这很有效。但是,我正在努力将值从嵌套结构映射到我的 Pydantic 模型。
假设我有以下格式的 json/dict:
d = {
"p_id": 1,
"billing": {
"first_name": "test"
}
另外,我有一个具有两个属性的 Pydantic 模型:
class Order(BaseModel):
p_id: int
pre_name: str
如何将键 first_name
中的值映射到我的 Pydantic 属性 pre_name
?
是否有一种简单的方法而不是使用 root_validator
将给定的结构解析为我的平面 pydantic 模型?
答案 0 :(得分:1)
您可以自定义模型类的 __init__
:
from pydantic import BaseModel
d = {
"p_id": 1,
"billing": {
"first_name": "test"
}
}
class Order(BaseModel):
p_id: int
pre_name: str
def __init__(self, **kwargs):
kwargs["pre_name"] = kwargs["billing"]["first_name"]
super().__init__(**kwargs)
print(Order.parse_obj(d)) # p_id=1 pre_name='test'