亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

FastAPI 發現我的 JSON 對象數組是無效列表

FastAPI 發現我的 JSON 對象數組是無效列表

慕運維8079593 2023-07-18 17:55:19
我正在使用 FastAPI,并嘗試將 JSON 對象的 JSON 數組發送到正文中的帖子端點。我的端點定義為:@router.post("/create_mails")def create_mails(notas: List[schemas.Nota], db: Session = Depends(get_db)):我在《郵遞員》中的身體看起來像:{     "notas": [{"a":"1","b":"2","c":"3","d":"4"},               {"a":"1","b":"2","c":"3","d":"4"}]               }但是,我不斷從 FastAPI 收到 422 無法處理的實體錯誤,錯誤詳細信息:值不是有效列表我還使用修改后的端點對其進行了測試:@router.post("/create_mails")def create_mails(notas: List[str] = Body([]), db: Session = Depends(get_db)):并使用簡單的字符串數組,但返回相同的錯誤。我是否缺少 FastAPI 對有效列表的定義?
查看完整描述

1 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

您的 POST 方法參數需要對整個請求正文進行建模,該正文實際上是單個對象,而不是列表。
為了匹配您嘗試發送的正文,您需要類似的內容:

class NotaList(BaseModel):
    notas: List[Nota]

進而:

def create_mails(body: schemas.NotaList)

請注意,函數中的參數名稱不是數據模型的一部分,它僅代表“頂級”主體對象。我已將其重命名為此body處以澄清這一點。請求正文中的notas將會被分配給notas類的成員,因此在您的方法中您將訪問如下內容(例如):

for nota in body.notas:
   # do stuff


查看完整回答
反對 回復 2023-07-18
  • 1 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號