Спуск с перспективы модели к примитивам
В FastAPI вы производите от BaseModel
для описания моделей данных, которые вы отправляете и получаете (т. Е. FastAPI также анализирует вас из тела и переводит в Python объекты). Кроме того, он опирается на моделирование и обработку из pydantic
.
from typing import List
from pydantic import BaseModel
class Item(BaseModel):
name: str
class ItemList(BaseModel):
items: List[Item]
def process_item_list(items: ItemList):
pass
. Этот пример сможет анализировать JSON как
{"items": [{"name": "John"}, {"name": "Mary"}]}
В вашем случае - в зависимости от того, что shape записи вашего списка имеют - вы также go для правильного моделирования типов, но вы хотите напрямую получать и обрабатывать список без обертки JSON вокруг него. Вы могли бы go для:
from typing import List
from pydantic import BaseModel
class Item(BaseModel):
name: str
def process_item_list(items: List[Item]):
pass
Который теперь может обрабатывать JSON как:
[{"name": "John"}, {"name": "Mary"}]
Это, вероятно, то, что вы ищете, и последняя адаптация к дубль зависит от формы вашего предмета * в списке, который вы получите. Если это простые строки, вы также можете go для:
from typing import List
def process_item_list(items: List[str]):
pass
, которые могут обрабатывать JSON, как
["John", "Mary"]
Я обозначил путь от моделей до примитивов в списках, потому что Я думаю, что стоит знать, где это может go, если требуется более сложная модель данных.