如何使用React和FastAPI将数组发送到后端。我不断收到错误代码 422

问题描述 投票:0回答:1

这是我的 React 代码。我正在解析上传到 fileData 的 CSV。我现在只是想在后端打印控制台中的数据。 CSV 可能有大约 350 行。

const [fileData, setFileData] = useState([])

const changeHandler = (event) => {
        Papa.parse(event.target.files[0], {
            header: true,
            skipEmptyLines: true,
            complete: function (results) {
                setFileData(results.data)
            },
          });
      };

async function postData() {
        try{
          console.log('File Data:', fileData)
          const response = await axios.post(`${API_KEY}/uploadPlayerMins`, fileData)
          console.log(response.data)
        }
        catch (error) {
          console.error(error)
        }
      }

这是Python代码。

class PlayerInfo(BaseModel):
    Mins: str
    Player: str

@router.post("/uploadPlayerMins")
async def create_upload_file(player: PlayerInfo):
    try:
        print(player)
        return JSONResponse(status_code=status.HTTP_200_OK, content=jsonable_encoder({ 'status': 'success',
                                'status_code': 200, 
                                  "message":  'Data has been uploaded successfully.'}))
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

python reactjs backend fastapi react-fullstack
1个回答
0
投票

看起来您的路线需要对象类型 PlayerInfo:

async def create_upload_file(player: PlayerInfo)

但是您正在尝试发送一个数组。也许您可以更改预期值类型。使用字典代替 PlayerInfo

async def create_upload_file(player: Dict)

© www.soinside.com 2019 - 2024. All rights reserved.