У меня есть скрипт Python, который выводит экземпляры EC2 на основе фильтра, и у меня есть словарь под названием ec_info = {}
, который я передаю данные из ec2.instances.filter()
вывода.
def get_instances():
result = {}
ec2 = boto3.resource('ec2')
data = ec2.instances.filter(Filters=[{'Name':'tag:Project','Values': ['Web']}])
for instance in data:
for tag in instance.tags:
if 'Name' in tag['Key']:
name = tag['Value']
ec2_info = {
"Name": name,
"Instance_Id": str(instance.id),
"State": instance.state["Name"],
"Private_IP": instance.private_ip_address,
}
data = json.dumps(ec2_info,indent=4,sort_keys=True)
print(data)
get_instances()
в результате яполучить вывод json, но не так, как ожидалось:
{
"Instance_Id": "some_id",
"Name": "some_name",
"Private_IP": "ip",
"State": "running"
}
{
"Instance_Id": "some_id",
"Name": "some_name",
"Private_IP": "IP",
"State": "running"
}
{
"Instance_Id": "some_id",
"Name": "some_name",
"Private_IP": "ip",
"State": "running"
}
Я хочу получить такой вывод:
{
"Instance_Id": "some_id",
"Name": "some_name",
"Private_IP": "ip",
"State": "running"
"Instance_Id": "some_id",
"Name": "some_name",
"Private_IP": "IP",
"State": "running"
"Instance_Id": "some_id",
"Name": "some_name",
"Private_IP": "ip",
"State": "running"
}
только один гигантский вывод json.
Как я могу это сделатьчто?