правила печати boto3 из шифрования корзины

#python-3.x #amazon-s3 #boto3 #boto #botocore

Вопрос:

Я пишу скрипт на python для извлечения информации об AWS и пытаюсь получить только SSEAlgorith, но я получаю ошибку типа: индексы списка должны быть целыми числами или срезами, а не строками. Есть ли способ это сделать? Я думаю, это для внутренних правил [].

 {
    "ServerSideEncryptionConfiguration": {
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "AES256"
                }
            }
        ]
    }
}
 

Это код, который я использую для получения информации:

 s3 = boto3.client('s3') 
buc = s3.list_buckets()

for i in response['Buckets']:
    enc = s3.get_bucket_encryption(Bucket=i['Name'])
    rules = enc['ServerSideEncryptionConfiguration']['Rules']['ApplyServerSideEncryptionByDefault']['SSEAlgorithm']
    print(rules)
 

Ответ №1:

Rules это список. Поэтому, предполагая, что у вас есть только один список, он должен быть:

 rules = enc['ServerSideEncryptionConfiguration']['Rules'][0]['ApplyServerSideEncryptionByDefault']['SSEAlgorithm']