访问嵌套字典Python

2024-10-02 18:20:14 发布

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

下面是我从aws 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对象不可调用的错误。 有人能告诉我怎么去吗。我知道这将是一个非常简单的事情,但我很抱歉,我被困在这从2天。你知道吗


Tags: 字符串awsprincipalyamls3actionresourcearn
1条回答
网友
1楼 · 发布于 2024-10-02 18:20:14

数据的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

相关问题 更多 >