Python类型检查:无法指定给法令

62o28rlo  于 2022-12-17  发布在  Python
关注(0)|答案(1)|浏览(152)

当我在Python代码中为一个dict赋值时,我得到了下面的错误消息:

Argument of type "dict[Unknown, Unknown]" cannot be assigned to parameter "__value" of type "str" in function "__setitem__"
  "dict[Unknown, Unknown]" is incompatible with "str"

代码:

async def notify(self, method: str, params: Optional[dict] = None):
    reqDict = {"jsonrpc": "2.0", "method": method}
    if params is not None:
        reqDict["params"] = params
        # ^^^^^^^^^^^^^^^ error

我不明白这是为什么。下面的代码工作正常:

async def notify(self, method: str, params: Optional[dict] = None):
    id = 1
    reqDict = {"jsonrpc": "2.0", "id": id, "method": method}
    if params is not None:
        reqDict["params"] = params

没有太大的区别,只是在dict中多了一个“id”键。
这里出了什么问题?我的代码还是类型检查器?我该如何修复?
这出现在Windows 10上的VSCode 1.74.1中,带有Python扩展和Python 3.9.6。

hs1ihplo

hs1ihplo1#

此错误消息指明,您正尝试将字典对象分配给需要字符串的变量或参数。要解决此问题,您必须在分配字典对象之前将其转换为字符串。您可以使用json.dumps()函数将字典对象序列化为JSON字符串,然后可以将其分配给变量或参数。

相关问题