You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI中如何从bytes对象解析form-data并提取metadata字段

FastAPI中如何从bytes对象解析form-data并提取metadata字段

嘿,我来帮你搞定这个问题!你之前直接用Body(...)接收请求体,拿到的是原始的bytes字节流,这肯定没法直接提取form-data里的metadata字段,毕竟bytes对象本身就没有name这类属性,所以才会报AttributeError。

其实FastAPI本身就提供了专门处理multipart/form-data的工具,不用你自己去解析原始字节流。你只需要把接口函数的参数改成用Form和File依赖项来接收对应的字段就行,就像你最后调整的那样:

from fastapi import FastAPI, UploadFile, File, Form
from typing import List
import json

app = FastAPI()

@app.post('/myapi')
async def getmyapi(metadata: str = Form(...), file: List[UploadFile] = File(...)):
    print(json.loads(metadata)) # 这里就能直接拿到解析后的字典啦!

这样改了之后,FastAPI会自动帮你解析请求里的form-data内容:把名为metadata的表单字段以字符串形式传给你,文件列表则用UploadFile对象来封装。你只需要用json.loads()把metadata字符串转成Python字典,就能轻松操作里面的内容了。

备注:内容来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:30:29