【问题标题】:TypeError: object dict can't be used in 'await' expressionTypeError:对象字典不能在“等待”表达式中使用
【发布时间】:2021-10-09 12:07:14
【问题描述】:

我有一个返回MyResponse的函数

class MyClass:

    @staticmethod
    async def getQueryResponse(myData: MyData) -> MyResponse:
        queryObj = {
            "a": myData.a,
            "b": myData.b
        }
        queryResponse = await requests.post(URL_DEEP_LEARNING, json=queryObj).json()
        return queryResponse

现在在另一个班级我正在使用它

myResponse = await MyClass.getQueryResponse(data)

但这表明

TypeError: object dict can't be used in 'await' expression

现在如果我删除等待

然后它显示

value is not a valid dict (type=type_error.dict)

当我使用调试器检查从MyClass 返回的对象时,它显示

【问题讨论】:

    标签: python async-await promise


    【解决方案1】:

    违规行是

    queryResponse = await requests.post(URL_DEEP_LEARNING, json=queryObj).json()
    

    改成

    requests.post(URL_DEEP_LEARNING, json=queryObj).json()
    

    返回一个字典,你正在等待它。

    requests 不是异步 pkg,您可能需要查看 aiohttp 或 httpx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      相关资源
      最近更新 更多