JavaScriptも同様の問題があり、ライウラリー探したけど、いまいちなので自作しました。
pythonも多分同じ方法で出来ると思います。
/**
- オブジェクトのプロパティの存在チェック&取得
- パラメータ:
-
obj : 任意のオブジェクト
-
path : チェックしたいデータがあるプロパティをパス形式で渡す (フォーマット例 "a.b.c")
- 戻り値:
-
プロパティにデータがある場合はデータを返し、無い場合はnotExistの指定が無い場合は"undefined"を返す
*/
Object.propatyGet = function(obj, path, notExist=undefined) {
return path.split('.').reduce((obj, prop) => { return obj && obj[prop] ? obj[prop] : notExist; }, obj);
}