Я написал код, который извлекает все запущенные общедоступные IP-адреса из AWS. Это возвращает данные в форме dict. Код работает следующим образом:Мне нужно создать список, извлекая информацию из файла dict
for region in regions:
instance_information = {}
ip_dict = {}
client = boto3.client('ec2',aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,region_name=region,)
addresses_dict = client.describe_addresses().get('Addresses')
for address in addresses_dict:
if address.get('InstanceId'):
instance_information[address['InstanceId']] = [address.get('PublicIp')]
# print instance_information
dex_dict = client.describe_tags().get('Tags')
for dex in dex_dict:
if instance_information.get(dex['ResourceId']):
instance_information[dex['ResourceId']].append(dex.get('Value'))
for instance in instance_information:
if len(instance_information[instance]) == 2:
ip_dict[instance_information[instance][0]] = instance_information[instance][1]
else:
ip_dict[instance_information[instance][0]] = ''
print (json.dumps(instance_information,indent=4))
print type(instance_information)
Это дает результат в виде:
{
"i-cqa1ea32": [
"22.40.13.171",
"Prod LB",
"pdx-ms-prod--lb01"
],
"i-b86adf671": [
"12.6.1.3",
"pdx-trial-LBi",
"HAProxy Server",
"us-west-2",
"pdx-cloud-trial",
"subnet-d8e1af",
"us-west-2b"
],
"i-47dabsa1": [
"12.5.124.146",
"SDL Exclusive LB",
"pdx01-ms-prod-sdl-lb02"
],
.
.
.
Теперь это типа dict
, мне нужно, чтобы извлечь IP, имя тега и региона, поэтому в основном отображение из приведенных выше данных, как
IP , Tag Name, Region
например:
['12.1.1.1','pdx-dev-server','us,west-1']
['12.1.1.3','pdx-dev-server1','ap-southeast-1']
..
..
Но некоторые из объектов dict не имеют области и т. Д. Как я могу создать list
из вышеуказанных данных, и мне нужно фактически передать (вернуть) IP-адреса другому коду. Пожалуйста ПОМОГИТЕ
[ 'dict.items'] (https://docs.python.org/3/library/stdtypes.html#dict.items), вы должны начать. Я вижу, что вы используете python 2, так что это будет список пар '(key, value)'. Используйте 'dict.iteritems', если вы хотите перебрать их и выполнить извлечение данных. –
, пожалуйста, укажите пример того, как должен выглядеть желаемый результат. Что такое имя тега, например? –
@ Ev.Kounis, Обновлено в вопросе, обратите внимание, что мне нужно передать IP-адрес другой функции также – PythonFreak