Pydantic 字段 JSON 别名根本不起作用
Pydantic field JSON alias simply does not work
我需要为 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"
}
这是真的吗?这么简单的用例怎么行不通?
您需要使用别名进行对象初始化。 ComplexObject(for=str(x * y))
但是for
不能在python中这样使用,因为它表示循环!
你可以这样使用它:co = ComplexObject(**{"for": str(x * y)})
我需要为 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"
}
这是真的吗?这么简单的用例怎么行不通?
您需要使用别名进行对象初始化。 ComplexObject(for=str(x * y))
但是for
不能在python中这样使用,因为它表示循环!
你可以这样使用它:co = ComplexObject(**{"for": str(x * y)})