Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting YAML file to python dict

I am having the following problem of mapping documents within a YAML file to a dict and properly mapping them.

I have the following YAML file, which represents a server (db.yml):

instanceId: i-aaaaaaaa      environment:us-east      serverId:someServer      awsHostname:ip-someip      serverName:somewebsite.com      ipAddr:192.168.0.1      roles:[webserver,php] 

I load this YAML file, which I can do without any problems, I think I understand that.

instanceId = getInstanceId() stream = file('db.yml', 'r') dict = yaml.load_all(stream)  for key in dict:     if key in dict == "instanceId":         print key, dict[key] 

I'd like the logic to work like the following:

  • load yaml, map to dict
  • look in every dict in the document, if the instanceId matches that which was set by getInstanceId(), then print out all of the keys and values for that document.

If I look at the map data structure from the command line, I get:

{'instanceId': 'i-aaaaaaaa environment:us-east serverId:someServer awsHostname:ip-someip serverName:someserver ipAddr:192.168.0.1 roles:[webserver,php]'} 

I think I might be creating the data structure for the YAML file improperly, and on matching the contents on the dict, I am a bit lost.

Side note: I cannot load all of the documents in this file using yaml.load(), I tried yaml.load_all(), which seems to work but my main issue still exists.

like image 843
Zippy Zeppoli Avatar asked Oct 22 '12 20:10

Zippy Zeppoli


0 Answers