yaml ファイルを特定の形式に変換しようとしています。YAML ファイルは次のようになります。
treeroot:
branch1:
name: 1
branch1-1:
name: 2
branch2:
name: 3
branch2-1:
name: 4
上記のファイルを入力として取得し、次の形式で出力したいと思います。
system.treeroot.branch1.name 1
system.treeroot.branch1.branch1-1.name 2
system.treeroot.branch2.name 3
system.treeroot.branch2.branch2-1.name 4
ここに私が書いたコードがあります:
#!/usr/bin/python
import yaml
m = "system"
def main():
yaml_data = yaml.load(open('test.yaml'))
recurse(yaml_data)
def recurse(yaml_data):
for k,v in yaml_data.iteritems():
global m
if type(v) == type({}):
m = m + "." + k
recurse(v)
else:
m = m + "." + k
print str(m)+" "+str(v)
if __name__ == "__main__":
main()
しかし、このコードが出力する出力は次のようなものです。
system.treeroot.branch2.branch2-1.name 4
system.treeroot.branch2.branch2-1.name.name 3
system.treeroot.branch2.branch2-1.name.name.branch1.branch1-1.name 2
system.treeroot.branch2.branch2-1.name.name.branch1.branch1-1.name.name 1
どうすれば問題を解決できますか?