json-schema.org, वस्तुओं के साथ $id फ़ील्ड को शामिल करना सबसे अच्छा अभ्यास है।

मैं संघर्ष कर रहा हूं कि इसे शीर्ष स्तर पर कैसे प्राप्त किया जाए, उदाहरण के लिए;

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 कैसे प्राप्त करूं, शीर्षक और प्रकार के साथ, नेस्टेड संपत्ति के रूप में नहीं?

0
SteveJ 15 नवम्बर 2021, 23:14

1 उत्तर

सबसे बढ़िया उत्तर

Pydantic स्कीमा अनुकूलन के कई तरीके प्रदान करता है। उदाहरण के लिए, 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"
}
1
alex_noname 15 नवम्बर 2021, 23:34