如何在FastAPI中使用orjson库读取请求体?
用orjson替代FastAPI默认JSON解析请求体
FastAPI的Request.json()方法默认使用Python标准库的json模块解析请求体,无法直接指定替换为orjson。要实现这个需求,你需要手动读取请求的原始字节数据,再用orjson进行解析:
修改后的代码示例
from fastapi import FastAPI, status, Request from fastapi.responses import ORJSONResponse import uvicorn import orjson app = FastAPI() @app.post("/", status_code=status.HTTP_200_OK) async def get_data(request: Request): # 读取原始请求体字节 body_bytes = await request.body() # 用orjson解析字节数据 param = orjson.loads(body_bytes) return param
关键说明
request.body():异步方法,返回请求体的原始字节数据,这一步替代了request.json()内部的读取逻辑orjson.loads(body_bytes):orjson的字节解析方法,直接处理原始字节,比标准库json更高效,支持更多JSON特性
如果你的项目还未安装orjson,执行以下命令安装:
pip install orjson
内容的提问来源于stack exchange,提问作者Nguyen
相关产品推荐
相关产品推荐

