我想为以下情况创建pydantic模型任何一个结果都将是
{
"dataStores": ""
}
或者是
{
"dataStores": {
"dataStore": [
{
"name": "sf",
"href": "http://localhost:8080/geoserver/rest/workspaces/sf/datastores/sf.json"
}
]
}
}
我的型号现在是这样的
class DataStoreInBulk(BaseModel):
name: str = ...
href: str = ...
class DataStoreDict(BaseModel):
dataStore: List[DataStoreInBulk]
class DataStoresModel(BaseModel):
dataStores: DataStoreDict = ''
我想我需要在DataStoresModel
中进行更改,它应该在DataStoreDict
之后有数据,或者只是''
,不接受其他字符串。我试过
class DataStoresModel(BaseModel):
dataStores: Union[DataStoreDict, str] = ''
但问题是,任何字符串都将成为有效值
Literal
适用于这种情况
from typing import Union,Literal
class CoveragesStoresModel(BaseModel):
coverageStores: Union[CoveragesStoresDict,Literal['']] = ''