import boto3 import botocore import csv client = boto3.client('s3') response = client.list_buckets() buckets = response['Buckets'] bucket_names =[] for each_bucket in buckets: bucket_names.append({'Bucket' : each_bucket['Name']}) for each_bucket in bucket_names: try: response = client.get_bucket_tagging( Bucket=each_bucket['Bucket']) tags = response['TagSet'] for each_tag in tags: if each_tag['Key'] == 'terraformed': each_bucket['terraformed'] = each_tag['Value'] if each_tag['Key'] == 'application_family': each_bucket['application_family'] = each_tag['Value'] except botocore.exceptions.ClientError: print('no tags') columns = ['Bucket', 'terraformed', 'application_family'] with open('s3_buckets.csv', 'w') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=columns) writer.writeheader() writer.writerows(bucket_names)