1

我有一个 yml 文件,内容如下

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 文件中每个玩家名称的列表。但我已经尝试了所有我能想到和搜索的东西来尝试制作它,这样我就可以把那个玩家的名字插入另一个搜索中,以寻找他们的平衡。

我知道这可能是一些超级简单的事情,我可能忽略了,只是没有想到谷歌的正确短语,一旦有人指出它,可能会在半小时内面面相觑。

4

1 回答 1

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']
于 2013-07-21T03:19:41.667 回答