我对化脓性药物很陌生,而且被困住了。下面的代码正在抛出错误TypeError:Type is not JSON serializable: Person
from pydantic import BaseModel,Extra
from typing import Mapping, Optional, Any,List
from orjson import dumps
class Address(BaseModel):
place: str
class Person(BaseModel):
name: str
age: int
address: Mapping[str, str]={}
class Config:
anystr_strip_whitespace: True
extra: Extra.allow
allow_population_by_field_name: True
person={'name':'tom','age':12,"gender":"male"}
person=Person(**person)
person.address['place']='XYZ'
dict={'class':'X','person':person}
dumps(dict)知道该怎么做吗?
发布于 2022-04-27 11:22:13
您需要使用Pydantic方法.dict()将模型转换为Python字典。
重要的是,您要将字典分配给Python类型!使用与“dict”不同的变量名,如下所示:“data_dict”。
以下是您的解决方案:
from pydantic import BaseModel,Extra
from typing import Mapping, Optional, Any,List
from orjson import dumps
class Address(BaseModel):
place: str
class Person(BaseModel):
name: str
age: int
address: Mapping[str, str]={}
class Config:
anystr_strip_whitespace: True
extra: Extra.allow
allow_population_by_field_name: True
person={'name':'tom','age':12,"gender":"male"}
person=Person(**person)
person.address['place']='XYZ'
data_dict={'class':'X','person':person.dict()}
dumps(data_dict)https://stackoverflow.com/questions/68283428
复制相似问题