如何删除空字段?

How to delete empty field?

我有一个像这样的 BaseModel

from pydantic import BaseModel

class TestModel(BaseModel):
    id: int
    names: str = None

当我像这样验证一些数据时

TestModel(id=123).dict() 

我得到了结果

{'id': 123, 'name': None}

但我期望的是:

{'id': 123}

问题: 有没有删除空字段的方法?谢谢!

如果您想从字典中删除值为 "None" 的键:

result = {k: v for k, v in result.items() if v is not None }

正确的做法是

TestModel(id=123).dict(exclude_none=True)

如果你到处都需要这个,你可以覆盖 dict() 并更改默认值。

你也许可以添加一个 root_validator:

@pydantic.root_validator(pre=False)
def check(cls, values):
    if values['some_key'] is None
        del values['some_key']