pycharm类型提示对于嵌套dict是不明确的

rt4zxlrg  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(428)

在尝试访问嵌套dict时,我从pycharm收到以下警告。以下是重现该行为的代码:

response = dict()
response['id'] = 'abc'
response['data'] = dict()
response['data']['field'] = {'value': 10,
                               'confidence': None,
                               'source': 'raw',
                               }
value = response['data']['field']['value']

在尝试访问“值”时,pycharm抱怨以下警告: Expected type 'Union[int, slice]', got 'str' instead 有人能帮我理解这种行为吗?谢谢

bvpmtnay

bvpmtnay1#

以下是我看到的:
pycharm只自动输入一到两个级别的深度(不确定您是否可以对该部分做些什么)。我也同意(正如其他人指出的)自动类型暗示对我来说也没有意义(可能有一个bug在那里)
然而,当我输入我自己的类型提示时,我可以得到警告,让我走开(目前使用2020.1)

response: Dict[str, Union[str, Dict[str, Dict[str, Union[int,str,None]]]]] = dict()

就我个人而言,我觉得这非常难看,也很难阅读。根据这些词典的重复频率,我有时会这样写:

T_fieldD = Dict[str, Dict[str, Union[int,str,None]]]
T_respD = Dict[str, Union[str, T_fieldD]]

response: T_respD = dict()

相关问题