访问嵌套字典 - Python

时间:2017-07-23 03:57:46

标签: python amazon-web-services

我在下面的字典中有那些我从ws S3桶中提取的值 -

{u'Policy': u'{"Version":"2012-10-17","Statement":[{"Sid":"AddPerm","Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::elliemaetestbucket1/*"},{"Sid":"AddPerm1","Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::elliemaetestbucket1/*"}]}'}

我想阅读“ Sid ”值并将其与我从yaml文件中获取的字符串进行比较。字典可以有多个sid,但我需要停止我的sid与我从yaml中提取的字符串匹配的位置。我确信我错过了很简单的事情。但是我在大多数情况下尝试了几乎所有的解决方案,我得到unicode对象不可调用的错误。 有人可以就如何访问它提供一些指导。我知道这将是非常简单的事情,但我很抱歉,我被困在这两天。

1 个答案:

答案 0 :(得分:3)

您的数据Policy键包含文字JSON,您必须先解析它才能访问其嵌套字段:

import json

policy = json.loads(your_data["Policy"])

print(policy["Statement"][0]["Sid"])  # Sid of the first Statement
print(policy["Statement"][1]["Sid"])  # Sid of the second Statement