Reputation: 633
I am trying to get the DBInstanceIdentifier
value from the below json
object (response
)
{
'Marker': 'string',
'DBInstances': [
{
'DBInstanceIdentifier': 'string',
'DBInstanceClass': 'string',
'Engine': 'string',
'DBInstanceStatus': 'string',
'MasterUsername': 'string',
'DBName': 'string',
'Endpoint': {
'Address': 'string',
'Port': 123,
'HostedZoneId': 'string'
},
'AllocatedStorage': 123,
'InstanceCreateTime': datetime(2015, 1, 1),
'PreferredBackupWindow': 'string',
'BackupRetentionPeriod': 123,
'DBSecurityGroups': [
{
'DBSecurityGroupName': 'string',
'Status': 'string'
},
],
'VpcSecurityGroups': [
{
'VpcSecurityGroupId': 'string',
'Status': 'string'
},
],
'DBParameterGroups': [
{
'DBParameterGroupName': 'string',
'ParameterApplyStatus': 'string'
},
],
'AvailabilityZone': 'string',
'DBSubnetGroup': {
'DBSubnetGroupName': 'string',
'DBSubnetGroupDescription': 'string',
'VpcId': 'string',
'SubnetGroupStatus': 'string',
'Subnets': [
{
'SubnetIdentifier': 'string',
'SubnetAvailabilityZone': {
'Name': 'string'
},
'SubnetStatus': 'string'
},
],
'DBSubnetGroupArn': 'string'
},
'PreferredMaintenanceWindow': 'string',
'PendingModifiedValues': {
'DBInstanceClass': 'string',
'AllocatedStorage': 123,
'MasterUserPassword': 'string',
'Port': 123,
'BackupRetentionPeriod': 123,
'MultiAZ': True|False,
'EngineVersion': 'string',
'LicenseModel': 'string',
'Iops': 123,
'DBInstanceIdentifier': 'string',
'StorageType': 'string',
'CACertificateIdentifier': 'string',
'DBSubnetGroupName': 'string',
'PendingCloudwatchLogsExports': {
'LogTypesToEnable': [
'string',
],
'LogTypesToDisable': [
'string',
]
},
'ProcessorFeatures': [
{
'Name': 'string',
'Value': 'string'
},
]
},
'LatestRestorableTime': datetime(2015, 1, 1),
'MultiAZ': True|False,
'EngineVersion': 'string',
'AutoMinorVersionUpgrade': True|False,
'ReadReplicaSourceDBInstanceIdentifier': 'string',
'ReadReplicaDBInstanceIdentifiers': [
'string',
],
'ReadReplicaDBClusterIdentifiers': [
'string',
],
'LicenseModel': 'string',
'Iops': 123,
'OptionGroupMemberships': [
{
'OptionGroupName': 'string',
'Status': 'string'
},
],
'CharacterSetName': 'string',
'SecondaryAvailabilityZone': 'string',
'PubliclyAccessible': True|False,
'StatusInfos': [
{
'StatusType': 'string',
'Normal': True|False,
'Status': 'string',
'Message': 'string'
},
],
'StorageType': 'string',
'TdeCredentialArn': 'string',
'DbInstancePort': 123,
'DBClusterIdentifier': 'string',
'StorageEncrypted': True|False,
'KmsKeyId': 'string',
'DbiResourceId': 'string',
'CACertificateIdentifier': 'string',
'DomainMemberships': [
{
'Domain': 'string',
'Status': 'string',
'FQDN': 'string',
'IAMRoleName': 'string'
},
],
'CopyTagsToSnapshot': True|False,
'MonitoringInterval': 123,
'EnhancedMonitoringResourceArn': 'string',
'MonitoringRoleArn': 'string',
'PromotionTier': 123,
'DBInstanceArn': 'string',
'Timezone': 'string',
'IAMDatabaseAuthenticationEnabled': True|False,
'PerformanceInsightsEnabled': True|False,
'PerformanceInsightsKMSKeyId': 'string',
'PerformanceInsightsRetentionPeriod': 123,
'EnabledCloudwatchLogsExports': [
'string',
],
'ProcessorFeatures': [
{
'Name': 'string',
'Value': 'string'
},
],
'DeletionProtection': True|False,
'AssociatedRoles': [
{
'RoleArn': 'string',
'FeatureName': 'string',
'Status': 'string'
},
],
'ListenerEndpoint': {
'Address': 'string',
'Port': 123,
'HostedZoneId': 'string'
},
'MaxAllocatedStorage': 123
},
]
}
Here is what I tried:
response = rds_client.describe_db_instances()
InstanceIdentifierNames = response['DBInstances']['DBInstanceIdentifier']
print(InstanceIdentifierNames)
But I get this error:
TypeError: list indices must be integers or slices, not st
Upvotes: 0
Views: 32
Reputation: 99
DBInstances is a list of instances, hence you will need to get a given DBInstance before you can get its identifier.
I suspect you want something like the following:
response = rds_client.describe_db_instances()
InstanceIdentifierNames = []
for DBInstance in response['DBInstances']:
InstanceIdentifierNames.append(DBInstance['DBInstanceIdentifier'])
print(InstanceIdentifierNames)
Upvotes: 1
Reputation: 7268
As DBInstances
is list. So try:
response['DBInstances'][0]['DBInstanceIdentifier']
Upvotes: 0