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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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