相关疑难解决方法(0)

FastAPI:如何将正文读取为任何有效的 json?

抱歉,不精通Python。

我还没有找到该用例的文档。我如何获取请求正文,确保它是一个有效的 Json(任何有效的 json,包括数字、字符串、布尔值和空值,而不仅仅是对象和数组)并获取实际的 Json。使用 pydantic 强制 Json 具有特定的结构。

json pydantic fastapi

20
推荐指数
3
解决办法
2万
查看次数

Python:带有 post 请求的 FastAPI 错误 422

我正在构建一个简单的 API 来测试数据库。当我使用 get request 时一切正常,但如果我更改为 post,我会收到“无法处理的实体”错误:

这是 FastAPI 代码:

from fastapi import FastAPI

app = FastAPI()

@app.post("/")
def main(user):
    return user
Run Code Online (Sandbox Code Playgroud)

然后,我的请求使用 javascript

let axios = require('axios')

data = { 
    user: 'smith' 
}

axios.post('http://localhost:8000', data)
    .then(response => (console.log(response.url)))
Run Code Online (Sandbox Code Playgroud)

并使用 Python

import requests

url = 'http://127.0.0.1:8000'
data = {'user': 'Smith'}

response = requests.post(url, json=data)
print(response.text)
Run Code Online (Sandbox Code Playgroud)

我也尝试解析为 json,使用 utf-8 编码,并更改标题。没有什么对我有用。

python python-requests axios fastapi

15
推荐指数
5
解决办法
3万
查看次数

如何在 FastAPI 中 POST 具有单个主体参数的 JSON?

我有一个名为的文件main.py,其中POST仅使用一个输入参数(整数)进行调用。简化代码如下:

from fastapi import FastAPI

app = FastAPI()

@app.post("/do_something/")
async def do_something(process_id: int):
    # some code
    return {"process_id": process_id}
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行保存在文件中的测试代码test_main.py,即:

from fastapi.testclient import TestClient
from main import app

client = TestClient(app)

def test_do_something():
    response = client.post(
        "/do_something/",
        json={
            "process_id": 16
        }
    )
    return response.json()

print(test_do_something())
Run Code Online (Sandbox Code Playgroud)

我得到:

{'detail': [{'loc': ['query', 'process_id'], 'msg': 'field required', 'type': 'value_error.missing'}]}
Run Code Online (Sandbox Code Playgroud)

我不明白这是什么错误。有必要继续呼吁POST

python fastapi

7
推荐指数
1
解决办法
8492
查看次数

如何将 JSON 数据发布到 FastAPI 并在端点内检索 JSON 数据?

我想将 JSON 对象传递到 FastAPI 后端。这是我在前端应用程序中所做的事情:

data = {'labels': labels, 'sequences': sequences}
response = requests.post(api_url, data = data)
Run Code Online (Sandbox Code Playgroud)

FastAPI 中的后端 API 如下所示:

@app.post("/api/zero-shot/")
async def Zero_Shot_Classification(request: Request):
    data = await request.json()
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Run Code Online (Sandbox Code Playgroud)

python rest fastapi streamlit

7
推荐指数
1
解决办法
1万
查看次数

在 Flask 中执行 request.json() 的等效 FastAPI 方法是什么?

在Flask中,来自客户端的请求可以如下处理。

对于 JSON 数据:

payload = request.get_json()

对于令牌参数:

token = request.headers.get('Authorization')

对于参数:

id = request.args.get('url', None)

FastAPI 做同样事情的方法是什么?

python json starlette fastapi

2
推荐指数
1
解决办法
2248
查看次数

标签 统计

fastapi ×5

python ×4

json ×2

axios ×1

pydantic ×1

python-requests ×1

rest ×1

starlette ×1

streamlit ×1