python data_error ai_generated true

Starlette HTTP 异常:400 错误请求,解析请求体时出错

starlette.exceptions.HTTPException: 400 Bad Request: There was an error parsing the body

ID: python/starlette-multiple-json-body

其他格式: JSON · Markdown 中文 · English
80%修复率
82%置信度
0证据数
2024-04-01首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

请求体不是有效的 JSON 或格式错误。

English

请求体不是有效的 JSON 或格式错误。

generic

解决方案

  1. 90% 成功率
    try:\n    data = await request.json()\nexcept Exception:\n    return JSONResponse({'error': 'Invalid JSON'}, status_code=400)
  2. 85% 成功率
    from pydantic import BaseModel\nclass Item(BaseModel):\n    name: str\n    price: float\nitem = Item(**data)

无效尝试

常见但无效的做法:

  1. 50% 失败

    可能重复解析,且处理复杂。

  2. 80% 失败

    导致后续逻辑错误。