Java 中有一个服务,Python 中有一个客户端。该服务接收/返回带有驼峰风格字段名称的 json;在 Python 中相应的 pydantic 模型中,我想使用 Snake_case (Python 的惯用语)。
我正在尝试创建一个带有别名的模型:
from pydantic import BaseModel, Field
class Test(BaseModel):
test_test: str = Field(..., alias = "testTest")
通过这段代码,在初始化模型时,需要通过别名指定字段名称(以camelCase形式),并在序列化时输出到snake_case:
test = Test(testTest="test") # При указании test_test выдает ошибку валидации Field required [type=missing, input_value={'test_test': 'test'}, input_type=dict]
print(test.model_dump())
结论:
{'test_test': 'test'}
我需要相反的,这样它就可以用普通名称(在snake_case中)初始化,并在camelCase中序列化。理想情况下,不需要为每个字段指定别名。