擅长:python、mysql、java
<p>您可以结合使用别名生成器和<code>.json</code>或<code>.dict</code>中的kwarg<a href="https://pydantic-docs.helpmanual.io/usage/exporting_models/" rel="nofollow noreferrer">by_alias</a>:</p>
<pre class="lang-py prettyprint-override"><code>from pydantic import BaseModel,Field
def to_camel(string: str) -> str:
string_split = string.split('_')
return string_split[0]+''.join(word.capitalize() for word in string_split[1:])
class Foo(BaseModel):
title_name:str
status_type:str
class Config:
alias_generator = to_camel
f = Foo.parse_raw("""
{
"titleName": "search001",
"statusType": "New"
}
""")
print(f) # title_name='search001' status_type='New'
print(f.json(by_alias=True)) # {"titleName": "search001", "statusType": "New"}
print(f.json()) # {"title_name": "search001", "status_type": "New"}
</code></pre>
<p>此外,还可以在<code>Config</code>类中添加<code>allow_population_by_field_name=True</code>,以便使用原始字段名或别名解析/初始化模型</p>