首頁 後端開發 Python教學 FastAPI中如何處理逗號分隔的列表查詢參數?

FastAPI中如何處理逗號分隔的列表查詢參數?

Apr 02, 2025 am 06:51 AM
ai 解決方法

FastAPI中如何處理逗號分隔的列表查詢參數?

FastAPI 列表參數的逗號分隔處理方法詳解

在使用FastAPI構建API時,經常需要處理列表類型的查詢參數。 FastAPI默認將相同名稱的查詢參數解析為列表,例如?source=manual&source=vdna會被解析為source=['manual', 'vdna'] 。但有時我們需要用逗號分隔的字符串傳遞列表參數,例如?source=manual,vdna 。本文介紹兩種解決方法。

問題根源:原始代碼中, source參數定義為list[source]類型,導致FastAPI將重複參數解析為列表,而非逗號分隔的字符串。

方法一:字符串參數及手動解析

最直接的方法是將source參數類型改為Optional[str] ,並在函數內部手動解析逗號分隔的字符串。此方法簡單易懂,無需額外依賴。

代碼示例:

 @review.get('/list', summary='獲取待審核列表')
def list_await_review(
    # ... other parameters ...
    source: Optional[str] = Query(None, description="請用`,`分割多個參數,如`Manual,vDNA,text-match`"),
    # ... other parameters ...
):
    parsed_source = source.split(",") if source else []
    # ...後續代碼使用parsed_source...

此方法將source解析為字符串,然後使用split(",")方法將其分割成列表。若source為空,則parsed_source為空列表。

方法二:自定義解析過程(高級方法)

更靈活的方法是自定義解析過程,例如創建自定義依賴項處理逗號分隔字符串。此方法能處理更複雜的解析邏輯,但需要編寫更多代碼,並需要更深入理解FastAPI的依賴注入機制。 官方文檔推薦使用Annotated增強參數校驗和類型提示,在處理複雜參數時更有優勢,但實現細節超出了本文範圍。

選擇哪種方法取決於你的需求和FastAPI熟練程度。對於簡單的逗號分隔列表參數,方法一足夠高效簡潔;而對於更複雜的場景,方法二提供了更大的靈活性。

以上是FastAPI中如何處理逗號分隔的列表查詢參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1535
276
筆記本電腦沒有聲音怎麼調出來?一鍵恢復蘋果筆記本沒聲音的步驟 筆記本電腦沒有聲音怎麼調出來?一鍵恢復蘋果筆記本沒聲音的步驟 Aug 14, 2025 pm 06:48 PM

筆記本電腦無聲?輕鬆排查解決!筆記本電腦是日常工作學習的必備工具,但有時會遇到無聲的困擾。本文將為您詳細分析筆記本電腦無聲的常見原因及解決方法。方法一:檢查音量及音頻設備連接首先,檢查系統音量設置是否正常。步驟一:點擊任務欄音量圖標,確認音量滑塊未處於靜音狀態,且音量大小合適。步驟二:在音量控制面板中,檢查“主音量”和“麥克風”音量設置,確保所有應用程序的音量均已正確調整。步驟三:如果您使用耳機或外接音箱,請檢查設備是否已正確連接並開啟。方法二:更新或重置音頻驅動程序過時的或損壞的音頻

ipad沒有聲音怎麼回事顯示耳機模式(平板電腦開了音量卻沒聲音如何恢復) ipad沒有聲音怎麼回事顯示耳機模式(平板電腦開了音量卻沒聲音如何恢復) Aug 14, 2025 pm 06:42 PM

iPad突然無聲?別慌!這篇指南將帶你排查iPad無聲的各種原因並提供相應的解決方法,助你快速恢復聲音! iPad無聲的原因有很多,例如溫度過高、系統故障、耳機連接問題等等。讓我們一步步排查:一、檢查音頻來源首先,確認無聲是iPad本身,還是連接的耳機或藍牙設備。如果是外接設備無聲,請嘗試重新連接或重啟設備。如果是iPad本身無聲,請繼續以下步驟。二、檢查音量和靜音設置iPad無聲可能是因為音量意外調低或靜音開啟。請嘗試:長按音量增加鍵,查看音量是否已調至最低。檢查iPad是否處

山寨幣牛市勢頭增強,比特幣停滯不前 山寨幣牛市勢頭增強,比特幣停滯不前 Aug 16, 2025 pm 12:48 PM

本週加密市場迎來微妙轉折。 Bitcoin在約$119,000附近陷入盤整,波動收窄,而多數主流山寨幣則展現出強勁反彈勢頭。這一分化現象引發廣泛關注:是否預示著資金正從比特幣向altcoins轉移,山寨幣輪動行情悄然啟動?儘管Bitcoin仍牢牢掌控市場主導地位,但山寨幣季節指數(AltseasonIndex)已悄然回升,釋放出潛在變盤信號。山寨幣普漲,Bitcoin橫盤蓄力近期市場結構出現明顯變化。 Bitcoin的市場主導率已下滑至58.54%,24小時內降幅達5.32%,而Ether

LINK價格突破 24 美元關鍵阻力分析:Chainlink 項目基本面與價格走勢 LINK價格突破 24 美元關鍵阻力分析:Chainlink 項目基本面與價格走勢 Aug 16, 2025 pm 12:15 PM

目錄當前價格走勢與關鍵技術信號推動LINK上漲的核心因素鯨魚與機構資金強勢入場戰略儲備機制強化通縮預期傳統金融巨頭採用加速生態擴張項目基本面:主導現實世界資產(RWA)token化浪潮價格預測:短期動能與長期潛力總結當前價格走勢與關鍵技術信號‍阻力與支撐位:若今日有效突破24.64美元,LINK的下一個目標為斐波那契0.786回撤位26.46美元,突破後可能挑戰2024年高點30.93美元。關鍵支撐

代幣Token究竟是什麼 Token和Coin有什麼區別 代幣Token究竟是什麼 Token和Coin有什麼區別 Aug 16, 2025 pm 12:33 PM

Coin是自有區塊鏈的原生資產,如BTC、ETH,用於支付費用和激勵網絡;Token則基於現有區塊鏈(如以太坊)通過智能合約創建,代表資產、權限或服務,依賴宿主鏈運行,如UNI、LINK,需用ETH支付交易費。

Render(RNDR幣)是什麼?價格如何? 2025 - 2030 年代幣價格預測 Render(RNDR幣)是什麼?價格如何? 2025 - 2030 年代幣價格預測 Aug 16, 2025 pm 12:30 PM

Render是什麼?區塊鏈重塑圖形渲染生態Render是一個基於區塊鏈技術打造的去中心化GPU渲染網絡,致力於打破傳統圖形渲染領域的資源集中格局。它通過智能合約機制,將全球範圍內的算力供需雙方高效連接:內容創作者(如電影製作公司、遊戲開發團隊、AI實驗室等):可在平台上提交複雜的渲染任務,並以RNDR代幣支付費用;算力提供者(擁有閒置GPU的個人或機構):通過接入網絡貢獻計算能力,完成任務後獲得RNDR代幣獎勵。該模式有效解決了傳統渲染流程中的多項瓶頸:成本優化:利用全球分佈式算力資

一文讀懂 Tokens 在去中心化金融中的角色 一文讀懂 Tokens 在去中心化金融中的角色 Aug 16, 2025 pm 12:12 PM

Tokens是基於區塊鏈的數字資產,在DeFi中發揮核心作用,包括治理、效用、穩定幣、證券型及LP Tokens等類型,廣泛應用於去中心化交易、借貸、收益耕作和NFT等領域,通過智能合約實現透明高效運作,同時需注意智能合約、無常損失、價格波動等風險,並選擇合適存儲安全管理資產。

Win10突然沒聲音怎麼辦 windows audio服務無法啟動的解決方法 Win10突然沒聲音怎麼辦 windows audio服務無法啟動的解決方法 Aug 14, 2025 pm 06:27 PM

許多Win10用戶可能會遇到系統突然沒有聲音的情況,這通常是由於windowsaudio服務被停用所致。以下是解決Win10系統沒有聲音且windowsaudio服務無法啟動的具體方法。解決方案:1、首先,打開服務管理器,找到並雙擊Windowsaudio服務,進入其屬性界面。在“依賴關係”選項卡中,您可以看到該服務所依賴的三個服務,如下圖所示:2、通過查看依賴關係,您會發現“MultimediaClassScheduler”服務處於禁用狀態。雙擊打開其屬性窗口:3、將“啟動類型”調整為“自動”

See all articles