2013-07-21 46 views
1

我有一個YML文件,上面寫着這樣的如何過濾具有屬性值的YAML數據集?

RealBank: 
    Players: 
    player1: 
     Balance: '0' 
    player2: 
     Balance: '0' 
    player3: 
     Balance: 63050 

我可以讓Python打印出每個球員的名字。但是對於我的生活,我不能接受這個球員的名字,並得到他們的平衡打印。

我的代碼看起來是這樣的:

stream = open("config.yml", "r") 
doc = yaml.load(stream) 
beans = doc['RealBank']['Players'] 
for bean in beans: 
    print bean 
    print doc['RealBank']['Players']['%s']['Balance'] % bean #this command does not work, no matter how i try to assemble it. 

這給了我在YAML文件中的每個球員的名字的列表。但我已經試過了我能想到的所有東西,然後搜索嘗試做出來,這樣我就可以將該球員的名字插入到另一個搜索結果中。

我知道它可能是超級簡單的東西,我可能俯瞰,只是沒有想到正確的短語谷歌,並可能面臨一個人一個人指出它半個小時facepalming。

回答

1

doc只包含普通的Python內置類型。你不是真的在查詢任何東西。

該行不起作用的是試圖格式化doc['RealBank']['Players']['%s']['Balance']的結果,其中%s是文字鍵名稱。如果你想使用bean作爲重點,那麼就傳遞變量:

print doc['RealBank']['Players'][bean]['Balance'] 

你也可以使用.items()遍歷鍵,值元:

for name, player in doc['RealBank']['Players'].items(): 
    print name, player['Balance'] 
+0

謝謝謝謝謝謝謝謝你謝謝你SOOOOOOOO很多!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! – helmet648

相關問題