डेटामॉडल-कोड-जनरेटर के साथ कोड जनरेशन¶
डेटामॉडल-कोड-जनरेटर प्रोजेक्ट किसी भी डेटा स्रोत से पाइडेंटिक मॉडल उत्पन्न करने के लिए एक लाइब्रेरी और कमांड-लाइन उपयोगिता है, जिसमें शामिल हैं:
- ओपनएपीआई 3 (YAML/JSON)
- JSON स्कीमा
- JSON/YAML/CSV डेटा (जिसे JSON स्कीमा में परिवर्तित किया जाएगा)
- पायथन डिक्शनरी (जिसे JSON स्कीमा में परिवर्तित किया जाएगा)
- ग्राफक्यूएल स्कीमा
जब भी आप अपने आप को किसी डेटा परिवर्तनीय JSON के साथ पाते हैं, लेकिन पाइडेंटिक मॉडल के बिना, तो यह टूल आपको मांग पर टाइप-सुरक्षित मॉडल पदानुक्रम उत्पन्न करने की अनुमति देगा।
इंस्टालेशन¶
pip install datamodel-code-generator
उदाहरण¶
इस मामले में, डेटामॉडल-कोड-जनरेटर JSON स्कीमा फ़ाइल से पाइडेंटिक मॉडल बनाता है।
datamodel-codegen --input person.json --input-file-type jsonschema --output model.py
व्यक्ति.json:
{
"$id": "person.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "The person's first name."
},
"last_name": {
"type": "string",
"description": "The person's last name."
},
"age": {
"description": "Age in years.",
"type": "integer",
"minimum": 0
},
"pets": {
"type": "array",
"items": [
{
"$ref": "#/definitions/Pet"
}
]
},
"comment": {
"type": "null"
}
},
"required": [
"first_name",
"last_name"
],
"definitions": {
"Pet": {
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
}
}
}
}
}
model.py:
# generated by datamodel-codegen:
# filename: person.json
# timestamp: 2020-05-19T15:07:31+00:00
from __future__ import annotations
from typing import Any
from pydantic import BaseModel, Field, conint
class Pet(BaseModel):
name: str | None = None
age: int | None = None
class Person(BaseModel):
first_name: str = Field(..., description="The person's first name.")
last_name: str = Field(..., description="The person's last name.")
age: conint(ge=0) | None = Field(None, description='Age in years.')
pets: list[Pet] | None = None
comment: Any | None = None
अधिक जानकारी आधिकारिक दस्तावेज़ पर पाई जा सकती है
本文总阅读量次