我编写了一个Python脚本,该脚本列出了AWS账户中的所有AWS实例。它为您提供了公共IP和私有IP,以及其他一些信息。
但是当json中有多个嵌套的公共IP和私有IP时,它将失败。我需要能够报告所有公共IP和私有IP。
我是Python的新手。而且,如果数据的内容不可预测,我需要知道如何构建数据的字典。
例如,某些实例可以具有少至几个私有IP或多达10个或20个私有IP。与公共IP相同。
数据如下所示:AWS Instance IPs
到目前为止,我的代码如下:
import boto3
import time
aws_account='company-prod'
session = boto3.Session(profile_name=aws_account)
ec2 = session.client("ec2")
instance_list = ec2.describe_instances()
for reservation in instance_list["Reservations"]:
for instance in reservation.get("Instances", []):
.... print out info about the instance....
我的脚本的完整代码可以在这里找到:AWS List Instances
如果数据因实例而异,如何构建此数据的字典?
答案 0 :(得分:1)
将数据读入Python:
with open('inputs.json', 'r') as file: # 'r' for read-only
my_variable = json.load(file)
将数据写入json:
with open('outputs.json', 'w') as f: # 'w' for write 'w+' will create a file if not found
json.dump(my_variable, f)
我想像一下,当您正确加载.json文件时,标准Python索引可以通过[]
轻松地访问它(这是用于索引列表,字典和元组的语法,但是当索引字典时,您应该放一个键而不是索引-> ['potatoes']而不是[0])