如何在 Pydantic.schema() 中包含 $id 字段
How to include $id fields in Pydantic.schema()
根据 json-schema.org,最好将 $id 字段包含在 objects 中。
例如,我正在为如何在顶层获得它而苦苦挣扎;
class MySchema(BaseModel):
id: str = Field(default="http://my_url/my_schema.json", alias="$id")
if __name__ == '__main__':
pprint(MySchema.schema())
产量
{'properties': {'$id': {'default': 'http://my_url/my_schema.json',
'title': '$Id',
'type': 'string'}},
'title': 'MySchema',
'type': 'object'}
如何在顶层获取带有标题和类型的 $id,而不是嵌套 属性?
Pydantic provides 多种模式定制方式。例如,使用 schema_extra
配置选项:
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
class Config:
schema_extra = {
'$id': "my.custom.schema"
}
print(Person.schema_json(indent=2))
输出:
{
"title": "Person",
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"age": {
"title": "Age",
"type": "integer"
}
},
"required": [
"name",
"age"
],
"$id": "my.custom.schema"
}
根据 json-schema.org,最好将 $id 字段包含在 objects 中。
例如,我正在为如何在顶层获得它而苦苦挣扎;
class MySchema(BaseModel):
id: str = Field(default="http://my_url/my_schema.json", alias="$id")
if __name__ == '__main__':
pprint(MySchema.schema())
产量
{'properties': {'$id': {'default': 'http://my_url/my_schema.json',
'title': '$Id',
'type': 'string'}},
'title': 'MySchema',
'type': 'object'}
如何在顶层获取带有标题和类型的 $id,而不是嵌套 属性?
Pydantic provides 多种模式定制方式。例如,使用 schema_extra
配置选项:
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
class Config:
schema_extra = {
'$id': "my.custom.schema"
}
print(Person.schema_json(indent=2))
输出:
{
"title": "Person",
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"age": {
"title": "Age",
"type": "integer"
}
},
"required": [
"name",
"age"
],
"$id": "my.custom.schema"
}