您好,登錄后才能下訂單哦!
這篇“pydantic怎么去掉未傳值的字段”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“pydantic怎么去掉未傳值的字段”文章吧。
使用 pydantic 定義數據模型,有些非必填的字段,我們希望在實例化時未傳值的字段去掉,這樣可以取值一些為None的字段。
age 和 address 是非必填字段
class User(BaseModel): name: str = ... tel: str = ... age: int = Field(None,) address: str = Field(None) user = User( name='yoyo', tel='10086' ) print(user.dict()) # {'name': 'yoyo', 'tel': '10086', 'age': None, 'address': None}
得到的結果, 沒有傳的字段會給到默認值
{'name': 'yoyo', 'tel': '10086', 'age': None, 'address': None}
可以通過 skip_defaults=True
參數跳過默認的設置項
print(user.dict(skip_defaults=True))
得到結果會有個警告:"skip_defaults" is deprecated and replaced by "exclude_unset"
DeprecationWarning: User.dict(): "skip_defaults" is deprecated and replaced by "exclude_unset" print(user.dict(skip_defaults=True)) # {'name': 'yoyo', 'tel': '10086', 'age': None, 'address': None} {'name': 'yoyo', 'tel': '10086'}
"skip_defaults" 方法已經被 "exclude_unset" 替代了
print(user.dict(exclude_unset=True))
運行結果
{'name': 'yoyo', 'tel': '10086'}
這樣就去掉了默認值為None的了。
以上就是關于“pydantic怎么去掉未傳值的字段”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。