【python】 YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated エラー
YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated
という警告が出ました。
下記のようにLoaderオプションを指定しないと警告がでる(非奨励)っぽい(2006年~load関数は安全性に問題があったようです、、、)ので
Loaderオプションについて調査
yaml.load(input, Loader=yaml.FullLoader)
リファレンス
1. Loader=yaml.BaseLoader
普通のYAMLのみを読み込みする
2. Loader=yaml.SafeLo
ader
YAMLの一部を読み込み(安全に。)。yamlに信頼できない値が入ってしまう場合は、このオプションを推奨
3. Loader=yaml.FullLoader
すべてのYAMLを読み込み。実行できてしまう(攻撃されたときなど)コードの実行は回避。現在はLoaderオプションを指定しないと、このオプションがデフォルトで実行される。
4. Loader=yaml.UnsafeLoader
以前の(Loaderオプションがなかった時の)コードの互換性のためのオプション
以上ですーー!
基本的にFullLoader オプションを指定すれば良さそうです。
外部から悪意ある入力が想定される場合は、SafeLoaderオプションが推奨されているようです。
警告はだいたい無視(ビルドできれば気にしない)する派だったのですが、
最近はなるべくエラーメッセージを読む習慣をつけようと思っています、、、。
おやすみなさいぃぃぃ