簡體   English   中英

python: {'detail': [{'loc': ['body'], 'msg': 'value is not a valid dict', 'type': 'type_error.dict'}]}

[英]python : {'detail': [{'loc': ['body'], 'msg': 'value is not a valid dict', 'type': 'type_error.dict'}]}

我正在使用 fastapi,當我使用以下代碼發送帖子時,它返回以下錯誤:

{'detail': [{'loc': ['body'], 'msg': 'value is not a valid dict', 'type': 'type_error.dict'}]}

我的代碼是:

import requests
import json
import datetime

def main():
    time = datetime.datetime.now().isoformat()

    transaction = {
        "time": time,
        "sender": "COCOCOCO",
        "receiver": "AAAAAA",
        "amount": AAA,
        "description": "Christmas Dinner Fee",
        "signature": "signature_sample"
    }

    url ="https://XXXXXX.deta.dev/transaction_pool/"
    res = requests.post(url, json.dumps(transaction))
    print(res.json())

if __name__ == "__main__":
    main()

我如何解決它?

您在 POST 請求中發送的內容不是有效的字典 object。可能是您在發送請求之前將“交易”字典轉換為帶有 json.dumps 的 JSON 字符串。 這將導致請求包含 JSON 字符串而不是 Python 字典 object。

您可以使用 json 參數直接在請求中發送字典,而不是使用 json.dumps。 這會在發送之前自動將字典轉換為 JSON 字符串:

res = requests.post(url, json=transaction)

您還可以使用 json() 方法發送轉換為 json object 的字典,

res = requests.post(url, data=json.dumps(transaction))

暫無
暫無

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

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