如何删除空字段?
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']
我有一个像这样的 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']