Как спроектировать входные данные вложенного словаря с помощью модели pydantic?Python

Программы на Python
Ответить
Anonymous
 Как спроектировать входные данные вложенного словаря с помощью модели pydantic?

Сообщение Anonymous »

У меня быстрый API, и я пытаюсь смоделировать входные данные, как показано ниже. Я хочу определить класс данных таким образом, чтобы колледжи представляли собой список, но необязательный, человек может иметь или не иметь опыт работы в колледже, и в этом списке есть список классов, который не является обязательным. Я включил необязательное ключевое слово, так что даже если во входных данных отсутствуют эти значения, вызов моего API не завершится неудачно. это правильный способ создания моих классов. Кроме того, есть ли лучший/короткий способ создания моих классов в pydantic для вложенных классов моделей? человек -> колледжи, затем у колледжей есть классы, вложенная структура. можно ли определить всю структуру в одном классе, а не определять три класса?
{
'name': 'john',
'Colleges': [
{
'name': 'Harvard',
...
'Classes': [
{
'level': 'graduate',
'grade': 'A'
},
{
'level': 'graduate',
'grade': 'B'
}
]
}

]

}

# Import required modules
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List

# Create a FastAPI app instance
app = FastAPI()

class Class(BaseModel):
level: str
grade: int

class College(BaseModel):
name: str
age: int
Classes: optional[List[Class]]= None

class Person(BaseModel):

name: str
description: str
Colleges: Optional[List[College]] = None

@app.post("/create/", response_model=dict)
def create(person: Person):
//do somethign
return {'message': 'success'}

if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)


Подробнее здесь: https://stackoverflow.com/questions/792 ... ntic-model
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»