【发布时间】:2020-03-16 16:24:59
【问题描述】:
假设我有一个像这样过滤掉数据的函数:
from typing import Dict, Union
def filterData(data: Dict[str, str], fields: Union[list, tuple]) -> dict:
filteredData = {}
for field in fields:
if field in data:
filteredData[field] = data[field]
return filteredData
我是这样使用这个函数的:
data = filterData({"a": "b", "c": "d"}, ("a")) # This should return {"a": "b"}.
现在,当我尝试访问像 data.a 这样的 a 属性时,我收到一条错误消息,上面写着 Instance of dict has no member a。如何定义和应用定义该字典所有成员的类型?
我尝试创建一个类,
class ReqData():
a: str
然后像这样应用于变量,
data: ReqData = filterData({"a": "b", "c": "d"}, ("a")
但这也没有用。
【问题讨论】:
-
请澄清。您的
dict没有 成员a。它只有一个item"a",即data["a"]。
标签: python python-3.x dictionary