【发布时间】:2017-09-09 17:07:48
【问题描述】:
如何漂亮地打印来自 AWS 的 Boto EC2 输出?
这是原版(不是很漂亮):
{u'Reservations': [{u'OwnerId': '123456789012', u'ReservationId': 'r-0583ea9691fc65d99', u'Groups': [], u'Instances': [{u'Monitoring': {u'State':'禁用'},u'PublicDnsName': 'ec2-52-91-153-194.compute-1.amazonaws.com', u'State': {u'Code': 16, u'Name': 'running'}, u'EbsOptimized': False, u'LaunchTime': datetime.datetime(2017, 4, 13, 14, 2, 13, tzinfo=tzutc()), u'PublicIpAddress':'52.91.153.194',u'PrivateIpAddress':'10.0.0.50', u'ProductCodes': [], u'VpcId': 'vpc-f06bb096', u'StateTransitionReason': '', u'InstanceId': 'i-00b54d7f43d6d6c41', u'ImageId':'ami-f4cc1de2',u'PrivateDnsName': 'ip-10-0-0-50.ec2.internal', u'KeyName': 'ec2-test', u'SecurityGroups': [{u'GroupName': 'default', u'GroupId': 'sg-d91a11a4'}], u'ClientToken': '', u'SubnetId': 'subnet-983e31a4', u'InstanceType': 't2.micro', u'NetworkInterfaces': [{u'Status': '使用中',u'MacAddress':'06:25:23:48:95:a6',u'SourceDestCheck': 真,u'VpcId': 'vpc-f06bb096', u'Description': '', u'Association': {u'PublicIp':'52.91.153.194',u'PublicDnsName': 'ec2-52-91-153-194.compute-1.amazonaws.com', u'IpOwnerId': 'amazon'}, u'NetworkInterfaceId':'eni-7813e976',u'PrivateIpAddresses': [{u'PrivateDnsName':'ip-10-0-0-50.ec2.internal',u'Association': {u'PublicIp':'52.91.153.194',u'PublicDnsName': 'ec2-52-91-153-194.compute-1.amazonaws.com', u'IpOwnerId': 'amazon'}, u'Primary':真,u'PrivateIpAddress':'10.0.0.50'}], u'PrivateDnsName':'ip-10-0-0-50.ec2.internal',u'附件': {u'状态':'附加',u'DeviceIndex':0,u'DeleteOnTermination': 是的,你'AttachmentId':'eni-attach-1497b932',你'AttachTime': datetime.datetime(2017, 4, 13, 14, 2, 13, tzinfo=tzutc())}, u'Groups': [{u'GroupName': 'default', u'GroupId': 'sg-d91a11a4'}], u'SubnetId': 'subnet-983e31a4',u'OwnerId':'123456789012',u'PrivateIpAddress': '10.0.0.50'}],u'SourceDestCheck':真,u'Placement':{u'Tenancy': 'default', u'GroupName': '', u'AvailabilityZone': 'us-east-1a'}, u'Hypervisor': 'xen', u'BlockDeviceMappings': [{u'DeviceName': '/dev/sda1', u'Ebs': {u'Status': 'attached', u'DeleteOnTermination': 是的,u'VolumeId':'vol-0bde7c66b5d2bfbe3',u'AttachTime': datetime.datetime(2017, 4, 13, 14, 2, 14, tzinfo=tzutc())}}], u'架构':'x86_64',u'RootDeviceType':'ebs', u'RootDeviceName': '/dev/sda1', u'VirtualizationType': 'hvm', u'AmiLaunchIndex': 0}]}, {u'OwnerId': '123456789012', u'ReservationId':'r-045b809e272d93e2b',u'Groups':[],u'Instances': [{u'Monitoring': {u'State': 'disabled'}, u'PublicDnsName': '', u'RootDeviceType': 'ebs', u'State': {u'Code': 48, u'Name': '终止'},u'EbsOptimized':假,u'LaunchTime': datetime.datetime(2017, 4, 13, 12, 56, 12, tzinfo=tzutc()), u'ProductCodes': [], u'StateTransitionReason': '用户发起 (2017-04-13 13:57:36 GMT)', u'InstanceId': 'i-0c474bd415597945d', u'ImageId':'ami-f4cc1de2',u'PrivateDnsName':'',u'KeyName': 'ec2-test', u'SecurityGroups': [], u'ClientToken': '', u'InstanceType':'t2.micro',u'NetworkInterfaces':[],u'Placement': {u'Tenancy': 'default', u'GroupName': '', u'AvailabilityZone': 'us-east-1a'}, u'Hypervisor': 'xen', u'BlockDeviceMappings': [], u'架构':'x86_64',u'StateReason':{u'Message': 'Client.UserInitiatedShutdown:用户启动关机',u'代码': 'Client.UserInitiatedShutdown'}, u'RootDeviceName': '/dev/sda1', u'VirtualizationType': 'hvm', u'AmiLaunchIndex': 1}, {u'Monitoring': {u'State':'禁用'},u'PublicDnsName':'',u'RootDeviceType': 'ebs', u'State': {u'Code': 48, u'Name': 'terminated'}, u'EbsOptimized': False, u'LaunchTime': datetime.datetime(2017, 4, 13, 12, 56, 12, tzinfo=tzutc()), u'ProductCodes': [], u'StateTransitionReason': '用户发起 (2017-04-13 13:57:36 GMT)', u'InstanceId':'i-08a8961ce06801f38',u'ImageId':'ami-f4cc1de2', u'PrivateDnsName': '', u'KeyName': 'ec2-test', u'SecurityGroups': [], u'ClientToken':'',u'InstanceType':'t2.micro',u'NetworkInterfaces': [], u'Placement': {u'Tenancy': 'default', u'GroupName': '', u'AvailabilityZone':'us-east-1a'},u'Hypervisor':'xen', u'BlockDeviceMappings':[],u'Architecture':'x86_64',u'StateReason': {u'Message': 'Client.UserInitiatedShutdown: 用户启动关机', u'代码':'Client.UserInitiatedShutdown'},u'RootDeviceName': '/dev/sda1', u'VirtualizationType': 'hvm', u'AmiLaunchIndex': 2}, {u'Monitoring': {u'State': 'disabled'}, u'PublicDnsName': '', u'RootDeviceType': 'ebs', u'State': {u'Code': 48, u'Name': '终止'},u'EbsOptimized':假,u'LaunchTime': datetime.datetime(2017, 4, 13, 12, 56, 12, tzinfo=tzutc()), u'ProductCodes': [], u'StateTransitionReason': '用户发起 (2017-04-13 13:57:36 GMT)', u'InstanceId': 'i-0912694d25b7c2d4f', u'ImageId':'ami-f4cc1de2',u'PrivateDnsName':'',u'KeyName': 'ec2-test', u'SecurityGroups': [], u'ClientToken': '', u'InstanceType':'t2.micro',u'NetworkInterfaces':[],u'Placement': {u'Tenancy': 'default', u'GroupName': '', u'AvailabilityZone': 'us-east-1a'}, u'Hypervisor': 'xen', u'BlockDeviceMappings': [], u'架构':'x86_64',u'StateReason':{u'Message': 'Client.UserInitiatedShutdown:用户启动关机',u'代码': 'Client.UserInitiatedShutdown'}, u'RootDeviceName': '/dev/sda1', u'VirtualizationType': 'hvm', u'AmiLaunchIndex': 0}]}], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId':'f698802c-3506-49f5-8bc6-d40639e1e12c','HTTPHeaders': {'传输编码':'分块','变化':'接受编码','服务器': 'AmazonEC2', 'content-type': 'text/xml;charset=UTF-8', 'date': '星期四, 2017 年 4 月 13 日 14:04:51 GMT'}}}
那些us 是什么?
如果我尝试使用 Python 的 JSON 转储,我会得到:
TypeError: datetime.datetime(2017, 4, 13, 14, 2, 13, tzinfo=tzutc()) is not JSON serializable
【问题讨论】:
标签: python amazon-ec2