在Python中访问dict内部的元素

2024-04-26 04:56:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python dict,我试图访问它里面的元素

data = [{
    u 'InstanceId': 'i-0729fd87c30489d12', u 'InstanceState': {
        u 'Code': 16, u 'Name': 'running'
    }, u 'AvailabilityZone': 'us-east-2a', u 'SystemStatus': {
        u 'Status': 'ok', u 'Details': [{
            u 'Status': 'passed', u 'Name': 'reachability'
        }]
    }, u 'InstanceStatus': {
        u 'Status': 'ok', u 'Details': [{
            u 'Status': 'passed', u 'Name': 'reachability'
        }]
    }
}]

Python版本:2.7

我想访问元素Name,它应该是give me output running

我正在使用的命令,data["InstanceState"]["Name"]

但它给出了错误

TypeError: list indices must be integers, not str

Tags: name元素datastatuscodeokdetailsrunning
2条回答

您认为正在访问的词典实际上位于一个列表中。更具体地说,它是列表中的第一项data(是的,数据是一个列表)。你知道吗

data[0]["InstanceState"]["Name"]

你不小心把字典放进了一个只有一个元素的列表里。你知道吗

data = {
    u 'InstanceId': 'i-0729fd87c30489d12', u 'InstanceState': {
        u 'Code': 16, u 'Name': 'running'
    }, u 'AvailabilityZone': 'us-east-2a', u 'SystemStatus': {
        u 'Status': 'ok', u 'Details': [{
            u 'Status': 'passed', u 'Name': 'reachability'
        }]
    }, u 'InstanceStatus': {
        u 'Status': 'ok', u 'Details': [{
            u 'Status': 'passed', u 'Name': 'reachability'
        }]
    }
}

你的代码现在可以工作了。只需拆下外方括号。 你在data["InstanceStatus"]["Details"]字典上犯了同样的错误。你知道吗

相关问题 更多 >