给定一个如下所示的数据类:
class MessageHeader(BaseModel):
message_id: uuid.UUID
def dict(self, **kwargs):
return json.loads(self.json())
我想在调用时获得字符串文字的字典dict
on MessageHeader
字典的期望结果如下:
{'message_id': '383b0bfc-743e-4738-8361-27e6a0753b5a'}
我想避免使用第三方库,例如pydantic
我不想用json.loads(self.json())
因为有额外的往返行程
有没有更好的方法将数据类转换为具有如上所述的字符串文字的字典?
您可以使用dataclasses.asdict https://docs.python.org/3/library/dataclasses.html#dataclasses.asdict:
from dataclasses import dataclass, asdict
class MessageHeader(BaseModel):
message_id: uuid.UUID
def dict(self):
return {k: str(v) for k, v in asdict(self).items()}
如果您确定您的类只有字符串值,您可以完全跳过字典理解:
class MessageHeader(BaseModel):
message_id: uuid.UUID
dict = asdict
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)