2017-04-13 28 views
0

您如何打印來自AWS的Boto EC2輸出?漂亮打印來自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': '使用中',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',''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':'12345 'u'PrivateIpAddress': '10 .0.0.50'}],u'SourceDestCheck':True,u'Placement':{u'Tenancy': 'default',u'GroupName':'',u'可用區':'us-east-1a'}, u'Hypervisor':'xen',u'BlockDeviceMappings':[{u'DeviceName': '/ dev/sda1',u'Ebs':{u'狀態':'附加',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'監視':{u'State':'disabled'},u'PublicDnsName':'', u'RootDeviceType':'ebs',u'State':{u'Code':48, '''','''優化':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-0c474bd415597945d', u'ImageId':'ami- f4cc1de2',u'PrivateDnsName':'',u'KeyName': 'ec2-test',u'SecurityGroups':[],u'ClientToken':'', u'InstanceType':'t2。微',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'Ebs優化':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'},'高級管理員':'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},'''''''','''',''',''' '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-0912694d25b7c2d4f', u'ImageId':'ami-f4cc1de2 ',u'PrivateDnsName':'',u'KeyName': 'ec2-test',u'SecurityGroups':[],u'ClientToken':'','''''''''''''''',''。 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 」, '內容 - 類型': '文本/ XML;字符集= UTF-8', '日期': '星期四, 2017年4月13日14時04分51秒GMT'}}}

這些都是u s?

如果我嘗試使用Python的JSON轉儲我得到:

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

回答

3

嘗試pprint模塊:

from pprint import pprint 
pprint(your_data) 

'ü' 前綴意味着這是一個unicode字符串。

+0

乾淨的答案。任何方式來擺脫'u's?非常分心。當你想複製和粘貼時非常不方便。 – Snowcrash

+1

切換到Python 3.x將是擺脫u的最簡單方法,因爲在Python 3中,所有內容都被視爲unicode,所以u前綴不再是必需的。 – acidtobi