我有一个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文件中每个玩家名字的列表。但我已经尝试了所有我能想到的东西,并试图尝试制作它,这样我就可以把这个玩家的名字插入到另一个搜索中以获得平衡。
我知道它可能是一些超级简单的东西,我可能会忽略,只是没有想到谷歌的正确短语,并且一旦有人指出它可能会面对半个小时。
答案 0 :(得分: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']