【问题标题】:Errror parsing data in python FastAPI在 python FastAPI 中解析数据时出错
【发布时间】:2020-06-16 03:32:54
【问题描述】:

我正在学习使用 FastAPI,但在实现一个简单的 API 时我一遍又一遍地遇到此错误,我无法弄清楚原因

"detail": "There was an error parsing the body"

这发生在这两个端点上:

完整代码:Code Repository

sn-p:

app_v1 = FastAPI(root_path='/v1')

# JWT Token request
@app_v1.post('/token')
async def login_access_token(form_data: OAuth2PasswordRequestForm = Depends()):
    jwt_user_dict = {"username": form_data.username, "password": form_data.password}
    jwt_user = JWTUser(**jwt_user_dict)
    user = authenticate_user(jwt_user)
    if user is None:
        return HTTP_401_UNAUTHORIZED
    jwt_token = create_jwt_token(user)
    return {"token": jwt_token}

请求:

@app_v1.post("/user/photo")
async def update_photo(response: Response, profile_photo: bytes = File(...)):
    response.headers['x-file-size'] = str(len(profile_photo))
    response.set_cookie(key='cookie-api', value="test")
    return {"profile photo size": len(profile_photo)}

请求:

【问题讨论】:

标签: python python-3.x fastapi


【解决方案1】:

我终于弄明白了,是因为在安装 FastAPI 时,它没有安装 python-multipart,所以这个包缺少需要 multipart 的所有内容

安装后就可以了

谢谢

【讨论】:

  • 像你一样安装python-multipart后,我的表单数据工作了,谢谢!
【解决方案2】:

第一个请求的问题是您应该在form-data 中发送usernamepassword。而不是x-www-form-urlencoded,使用form-data,你应该没问题。

我看不出第二个有问题。您可以尝试使用 Swagger 界面,看看那里是否发生同样的情况?

【讨论】:

  • 我也尝试过表单数据,但仍然得到同样的错误,即使是大摇大摆。我编辑问题以显示招摇打印
猜你喜欢
  • 2022-09-30
  • 1970-01-01
  • 2023-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多