当我在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。
1条答案
按热度按时间hs1ihplo1#
此错误消息指明,您正尝试将字典对象分配给需要字符串的变量或参数。要解决此问题,您必须在分配字典对象之前将其转换为字符串。您可以使用json.dumps()函数将字典对象序列化为JSON字符串,然后可以将其分配给变量或参数。