From: Rob Biedenharn Date: 2009-01-20T02:43:55+09:00 Subject: Re: parsing List results On Jan 19, 2009, at 12:00 PM, Fernando Ramos wrote: > Hi Folks, > > I need to parse a result that comes in this format : > > ========================= > ec2.describe_instances #=> > [{:aws_image_id => "ami-e444444d", > :aws_reason => "", > :aws_state_code => "16", > :aws_owner => "000000000888", > :aws_instance_id => "i-123f1234", > :aws_reservation_id => "r-aabbccdd", > :aws_state => "running", > :dns_name => > "domU-12-34-67-89-01-C9.usma2.compute.amazonaws.com", > :ssh_key_name => "staging", > :aws_groups => ["default"], > :private_dns_name => > "domU-12-34-67-89-01-C9.usma2.compute.amazonaws.com", > :aws_instance_type => "m1.small", > :aws_launch_time => "2008-1-1T00:00:00.000Z"}, > :aws_availability_zone => "us-east-1b", > :aws_kernel_id => "aki-ba3adfd3", > :aws_ramdisk_id => "ari-badbad00", > ..., {...}] > ========================= > > When I invoke the method, > > puts @ec2.describe_instances > > the results comes like this : > ========================= > aws_image_idami- > e444444daws_reasonaws_state_codeaws_owner000000000888aws_instance_id > i-123f1234aws_reservation_idr-aabbccddaws_staterunningdns_name > domU-12-34-67-89-01- > C9.usma2.compute.amazonaws.comssh_key_namestagingaws_groups > ... > ========================= > Question : > > Is there a way of accessing a specific key, for example : aws_status ? > If so, how do I do that ? > > Thank you so much. > > Regards. > You can: require 'pp' pp @ec2.describe_instances or just use #inspect: (which is what irb does with the last expression anyway) p @ec2.describe_instances puts @ec2.describe_instances.inspect As for getting the specific key (did you mean 'aws_state'?), perhaps something like: @ec2.describe_instances.each do |instance_hash| puts "%20s: %s"%instance_hash.values_at(:aws_instance_id, :aws_state) end i-123f1234: running You can look at: String#%, Kernel.sprintf, Hash#values_at, and Hash#[] (oh yeah, and Enumerable#each) for the details. -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com