我有一本字典,如下图所示。现在,我需要将密钥及其对应的mpath一起获取,以便进一步使用它根据密钥识别其插槽号。我该如何实现? 我尝试了一种方法,但它给了我关键错误。

multipath = {'/dev/sdh': {'mpath': '/dev/mapper/mpathk', 'dm': '/dev/dm-4'}, '/dev/sdi': {'mpath': '/dev/mapper/mpathk', 'dm': '/dev/dm-4'}, '/dev/sdg': {'mpath': '/dev/mapper/mpathj', 'dm': '/dev/dm-2'}, '/dev/sdf': {'mpath': '/dev/mapper/mpathj', 'dm': '/dev/dm-2'}, '/dev/sdd': {'mpath': '/dev/mapper/mpathi', 'dm': '/dev/dm-5'}, '/dev/sde': {'mpath': '/dev/mapper/mpathi', 'dm': '/dev/dm-5'}, '/dev/sdb': {'mpath': '/dev/mapper/mpathh', 'dm': '/dev/dm-6'}, '/dev/sdc': {'mpath': '/dev/mapper/mpathh', 'dm': '/dev/dm-6'}, '/dev/sdj': {'mpath': '/dev/mapper/mpathg', 'dm': '/dev/dm-3'}, '/dev/sdk': {'mpath': '/dev/mapper/mpathg', 'dm': '/dev/dm-3'}}
mpath_sd = {}
mpath_list = []
for sd, mpaths in multipath.items():
    mdevs = mpathdev.get('mpath')
    mpath_list.append(mdevs)
    mpath_sd[sd].append(mpath_list)

我期望的输出是这样的

{'/dev/sdh':'/dev/mapper/mpathk', '/dev/sdi': '/dev/mapper/mpathk',.....}
分析解答

您所需要的可以很容易地实现为:

>>> {key: value["mpath"] for key, value in multipath.items()}
{'/dev/sdh': '/dev/mapper/mpathk', '/dev/sdi': '/dev/mapper/mpathk',
 '/dev/sdg': '/dev/mapper/mpathj', '/dev/sdf': '/dev/mapper/mpathj',
 '/dev/sdd': '/dev/mapper/mpathi', '/dev/sde': '/dev/mapper/mpathi',
 '/dev/sdb': '/dev/mapper/mpathh', '/dev/sdc': '/dev/mapper/mpathh',
 '/dev/sdj': '/dev/mapper/mpathg', '/dev/sdk': '/dev/mapper/mpathg'}