在Python中,是否有方法从绑定在列表类型中的嵌套字典中获取值

在Python中,是否有方法从绑定在列表类型中的嵌套字典中获取值,python,dictionary,Python,Dictionary,我有这样的输出 >>> print output [{u'MachineId': u'0', u'Stdout': u'{"version":"2.1-beta2.1-xenial-amd64","url":"file:///tmp/juju-tools137740170/tools/released/juju-2.1-beta2-xenial-amd64.tgz","sha256":"70a1ec4e9d194f71506b9b2944357335d3dbe5386e

我有这样的输出

  >>> print output
  [{u'MachineId': u'0', u'Stdout': u'{"version":"2.1-beta2.1-xenial-amd64","url":"file:///tmp/juju-tools137740170/tools/released/juju-2.1-beta2-xenial-amd64.tgz","sha256":"70a1ec4e9d194f71506b9b2944357335d3dbe5386e7797de3ed71c12092ba774","size":24537713}'}]
 >>> type (output)
 <type 'list'>

 >>> print output[0]
 {u'MachineId': u'0', u'Stdout': u'{"version":"2.1-beta2.1-xenial-amd64","url":"file:///tmp/juju-tools137740170/tools/released/juju-2.1-beta2-xenial-amd64.tgz","sha256":"70a1ec4e9d194f71506b9b2944357335d3dbe5386e7797de3ed71c12092ba774","size":24537713}'}
 >>>
 >>> type (output[0])
 <type 'dict'>
打印输出 [{u'MachineId':u'0',u'Stdout':u'{“版本”:“2.1-beta2.1-xenial-amd64”,“url”:”file:///tmp/juju-tools137740170/tools/released/juju-2.1-beta2-xenial-amd64.tgz,“sha256”:“70A1EC4E9D194F71506B9B29443573335D3DBE5386E7797DE3ED71C12092BA774”,“大小:24537713}] >>>类型(输出) >>>打印输出[0] {u'MachineId':u'0',u'Stdout':u'{“版本”:“2.1-beta2.1-xenial-amd64”,“url”:”file:///tmp/juju-tools137740170/tools/released/juju-2.1-beta2-xenial-amd64.tgz,“sha256”:“70A1EC4E9D194F71506B9B29443573335D3DBE5386E7797DE3ED71C12092BA774”,“大小:24537713}” >>> >>>类型(输出[0]) 在这里,我想从输出[0]和标准输出dict的字典中获取sha256值; 让我知道是否有一种直接的方法可以在Python中获取该值,而不是迭代

如果我试图直接访问它们,就会得到“TypeError:字符串索引必须是整数”

     >>> print output[0]['Stdout']['sha256']
     Traceback (most recent call last):
     File "<console>", line 1, in <module>
     TypeError: string indices must be integers
>>打印输出[0]['Stdout']['sha256']
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:字符串索引必须是整数

您可以通过将
Stdout
字符串转换为json来获取sha256值,例如:

import json
print json.loads(output[0]['Stdout'])['sha256']

您的
Stdout
是另一个JSON字符串,您必须先对其进行解码,然后才能使用带有
'sha245'
键的字典。@MartijnPieters告诉我如何从输出中获取sha256的值。这里有什么问题吗?如果结构和键名保持不变,则可以使用
输出[0]['Stdout']['sha256']
@MayurBuragohain轻松获取;我尝试了它,得到了以下错误>>>打印输出[0]['Stdout']['sha256']回溯(最近一次调用):文件“”,第1行,在TypeError:字符串索引必须是整数为什么对这个问题使用-4的否定注释?是我问错了吗:(为什么需要json.loads?从这个问题来看,很明显输出和输出[0]分别是list和dict。@MayurBuragohain,请参阅Marty Pieters的评论,根据Viswesn Stdout报告的错误,它是一个json字符串而不是一个字典,