【问题标题】:Pydantic field JSON alias simply does not workPydantic 字段 JSON 别名根本不起作用
【发布时间】:2021-06-30 08:10:14
【问题描述】:

我需要为 Pydantic 对象指定一个 JSON 别名。它根本不起作用。

from pydantic import Field
from pydantic.main import BaseModel


class ComplexObject(BaseModel):
    for0: str = Field(None, alias="for")


def create(x: int, y: int):
    print("was here")
    co = ComplexObject(for0=str(x * y))
    return co


co = create(x=1, y=2)
print(co.json(by_alias=True))

这个输出是{"for" : null而不是{"for" : "2"}

这是真的吗?这么简单的用例怎么行不通?

【问题讨论】:

    标签: python fastapi pydantic


    【解决方案1】:

    您需要使用别名进行对象初始化。 ComplexObject(for=str(x * y)) 但是for不能在python中这样使用,因为它表示循环! 你可以这样使用它:co = ComplexObject(**{"for": str(x * y)})

    【讨论】:

    • 另外,不使用“for”或“map”之类的保留字,通常的做法是使用 for_ 或 map_ 结尾加上下划线
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2021-12-17
    • 2022-12-17
    • 1970-01-01
    • 2022-07-02
    • 2016-01-03
    • 2020-06-22
    • 2015-08-24
    相关资源
    最近更新 更多