簡體   English   中英

為什么 Flask 'POST' 不返回簡單的 JSON 對象?

[英]Why does Flask 'POST' not return a simple JSON object?

我試圖找到收效甚微類似的問題(或文件),所以我會感激,如果有人能在我已經錯了這里那里的方向指向我。

在 Python 3 中,我使用 Flask 接收 JSON 的 HTTP 請求並返回它們。

from flask import Flask, request
app=Flask(__name__, template_folder='')

@app.route('/json', methods=['POST'])
def json():
    return format(request)

我正在使用 Postman 將以下內容 POST 到 127.0.0.1/json(確認:127.0.0.1/json 如果我只是要求它返回“Hello World”,則它工作得很好):

{
    "test":"Hello World"
}

然后郵遞員回復:

<Request 'http://127.0.0.1:5000/json' [POST]>

到現在為止還挺好。 但它報告有一個“屬性名稱中的無效字符”。

此外,當我將 Python 腳本更改為:

from flask import Flask, request
app=Flask(__name__, template_folder='')

@app.route('/json', methods=['POST'])
def json():
    return format(request.get_json())

腳本向 Postman 返回“None”,盡管 JSON 對象被 POST 到它。

非常感謝任何可以為我澄清這一點的人。 我通常嘗試調試自己,但這讓我真的難住了幾個小時。 我敢肯定我在做一些非常愚蠢的事情! 非常感謝!

好的,無論出於何種原因,JSON 對象沒有被解析為“application/json”,我解決了這個問題:

return format(request.get_json(force=True))

參數 force=True 無論如何都會處理 JSON。

非常感謝大家的幫助! 希望這可以幫助其他有點困惑的人......

我懷疑您沒有從 Postman 將有效負載作為 JSON 發送。

它應該是這樣的:

在此處輸入圖片說明

然后,當您在 Flask 應用程序中執行request.json ,您應該會看到 JSON。 請注意,它不是 request.json()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM