漂亮的打印从AW输出到EC2

2024-03-28 08:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

你如何打印AWS的Boto EC2输出?在

原稿(不太好看):

{u'Reservations': [{u'OwnerId': '123456789012', u'ReservationId': 'r-0583ea9691fc65d99', u'Groups': [], u'Instances': [{u'Monitoring': {u'State': 'disabled'}, 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': 'in-use', u'MacAddress': '06:25:23:48:95:a6', u'SourceDestCheck': True, 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': True, u'PrivateIpAddress': '10.0.0.50'}], u'PrivateDnsName': 'ip-10-0-0-50.ec2.internal', u'Attachment': {u'Status': 'attached', u'DeviceIndex': 0, u'DeleteOnTermination': True, u'AttachmentId': 'eni-attach-1497b932', u'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': True, 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': True, u'VolumeId': 'vol-0bde7c66b5d2bfbe3', u'AttachTime': datetime.datetime(2017, 4, 13, 14, 2, 14, tzinfo=tzutc())}}], u'Architecture': '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': 'terminated'}, u'EbsOptimized': False, u'LaunchTime': datetime.datetime(2017, 4, 13, 12, 56, 12, tzinfo=tzutc()), u'ProductCodes': [], u'StateTransitionReason': 'User initiated (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'Architecture': 'x86_64', u'StateReason': {u'Message': 'Client.UserInitiatedShutdown: User initiated shutdown', u'Code': 'Client.UserInitiatedShutdown'}, u'RootDeviceName': '/dev/sda1', u'VirtualizationType': 'hvm', u'AmiLaunchIndex': 1}, {u'Monitoring': {u'State': 'disabled'}, 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': 'User initiated (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: User initiated shutdown', u'Code': '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': 'terminated'}, u'EbsOptimized': False, u'LaunchTime': datetime.datetime(2017, 4, 13, 12, 56, 12, tzinfo=tzutc()), u'ProductCodes': [], u'StateTransitionReason': 'User initiated (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'Architecture': 'x86_64', u'StateReason': {u'Message': 'Client.UserInitiatedShutdown: User initiated shutdown', u'Code': 'Client.UserInitiatedShutdown'}, u'RootDeviceName': '/dev/sda1', u'VirtualizationType': 'hvm', u'AmiLaunchIndex': 0}]}], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': 'f698802c-3506-49f5-8bc6-d40639e1e12c', 'HTTPHeaders': {'transfer-encoding': 'chunked', 'vary': 'Accept-Encoding', 'server': 'AmazonEC2', 'content-type': 'text/xml;charset=UTF-8', 'date': 'Thu, 13 Apr 2017 14:04:51 GMT'}}}

这些是什么?在

如果我尝试使用Python的JSON转储,我会得到:

TypeError: datetime.datetime(2017, 4, 13, 14, 2, 13, tzinfo=tzutc()) is not JSON serializable

Tags: clienttruedefaultdatetimecodeec2statetzinfo