Posted at

PyYAMLがyaml.loadでYAMLLoadWarningを出してくるようになった件

今日何気なくPyYAMLを使おうとしたら、yaml.load(f)のようなコードが軒並みYAMLLoadWarningを吐くようになった件。


file.py:***: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.


まあ、内容としては書いてあるとおりなのですが・・・。

PyYAML5.1以降、Loader引数無しでyaml.load()を呼ぶのは、エクスプロイトを仕込めてしまう危険があるのでダメになったそうな。なので、こうしなきゃいけなくなりました。

  yaml.load(f, Loader=yaml.SafeLoader)

yaml.safe_load()メソッドあたりを使ってもいいよとのこと。

警告に書かれたURLのページに書いてあるとおりですね。