【问题标题】:Accessing Data Nested in Dictionary in Array in Dictionary在字典中的数组中访问嵌套在字典中的数据
【发布时间】:2025-12-21 00:20:15
【问题描述】:

我感到很困惑,正在寻求帮助。我正在尝试访问位于字典内的数组内的字典内的数据。见下文:

{
    'files': [
        {
            'type': 'diskDescriptor', 
            'name': '[VM] VM1/VM1.vmdk',
            'key': 4, 
            'size': 0
        }, 
        {
            'type': 'diskExtent', 
            'name': '[VM] VM1/VM1-flat.vmdk', 
            'key': 5, 
            'size': 32457621504
        }
    ], 
    'capacity': 32505856, 
    'label': 'Hard disk 1', 
    'descriptor': '[VM] VM1/VM1.vmdk',
    'committed': 31696896, 
    'device': {
        'summary': '32,505,856 KB', 
        '_obj': <pysphere.vi_property.VIProperty object at 0x17442910>, 
        'unitNumber': 0, 
        'key': 2000, 
        'label': 'Hard disk 1', 
        'type': 'VirtualDisk',
        'capacityInKB': 32505856
    }
}

如果我想访问,比如说描述符键值,我将如何使用 Python 进行此操作?由于某种原因,我尝试过的所有组合都不起作用。

我们将不胜感激任何帮助和指导,如果需要更多信息,我可以提供。谢谢。

【问题讨论】:

    标签: python arrays python-2.7 dictionary


    【解决方案1】:

    让我们把你的主词典称为 bob,因为我喜欢 bob:

    bob['files'] #get you the list with second dictionary
    
    bob['files'][0] #get you the first item in the list, which is the nested 2nd dictionary
    
    bob['files'][0]['type'] == 'diskDescriptor'
    

    【讨论】:

    • 太棒了!感谢您的及时回复。但是,如果我想获得“容量InKB”或“标签”(位于“设备”下)怎么办?由于它不在数组中,因此我无法使用 [] 和指定的项目来获取它。例如 - bob['files'][2]['label'] 或 bob['files'][3]['capacityInKB']...
    • 没关系 - 我想出了我的附加问题。再次感谢!
    • 您可以随时在 ipython 中尝试这些,以使调试过程变得更加容易,如果您愿意的话。只需一步一步打印出来,很快就会变得有意义。