FastAPI – Как передать данные словаря/JSON в многочастном запросе HTTP?Python

Программы на Python
Anonymous
FastAPI – Как передать данные словаря/JSON в многочастном запросе HTTP?

Сообщение Anonymous »

Я пытаюсь сделать запрос POST:

Код: Выделить всё

import requests

files = {'template': open('template.xlsx', 'rb')}
payload = {
'context': {
'OUT': 'csv',
'SHORT': 'short'
},
'filename': 'file.xlsx',
'content_type': 'application/excel'
}

r = requests.post('http://localhost:8000/render', files=files, data=payload)
на сервер FastAPI:

Код: Выделить всё

from fastapi import FastAPI, UploadFile, Form
from pydantic import Json

app = FastAPI()

@app.post('/render')
def render(template: UploadFile, context: Json = Form(), filename: str = Form(...), content_type: str = Form(...)):
# processing
return "ok"
но я получаю эту ошибку ( код состояния):

Код: Выделить всё

{"detail":[{"loc":["body","context"],"msg":"Invalid JSON","type":"value_error.json"}]}
Как видите, я пытаюсь передать и файл и тело запроса одновременно . Думаю, я мог бы это исправить, если бы конвертировал полезную нагрузку['context'] в JSON. Но я бы хотел исправить это на стороне сервера.
Как исправить ошибку? Может быть, преобразовать некоторые из них до того, как параметры перейдут в поле зрения, или что-то в этом роде?

Подробнее здесь: https://stackoverflow.com/questions/732 ... rt-request

Вернуться в «Python»