我需要为一个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"
}
这是真实的的吗?这么简单的用例怎么会不起作用呢?
2条答案
按热度按时间tsm1rwdh1#
你需要使用别名来初始化对象。
ComplexObject(for=str(x * y))
但是for
在python中不能这样使用,因为它表示一个循环!你可以这样使用它:co = ComplexObject(**{"for": str(x * y)})
a8jjtwal2#
您可以将
allow_population_by_field_name=True
值添加到pydantic模型的Config
上。