何も設定せずにyaml.dumpするとreferenceの機能が使われてしまう。不要な場合もある。
import yaml
person = {
"name": "foo",
"age": 20
}
d = [person, person]
print(yaml.dump(d))
例えば以下のような出力になる。
- &id001 {age: 20, name: foo}
- *id001
yaml.dumpにDumperオプションが渡せる。そしてここで渡すDumperクラスのignore_aliases()メソッドをTrueを返すようにしてあげれば良い。
class IgnoreReferenceDumper(yaml.Dumper):
def ignore_aliases(self, data):
return True
print(yaml.dump(d, Dumper=IgnoreReferenceDumper))
平和が訪れた。
- {age: 20, name: foo}
- {age: 20, name: foo}