response['items'][0]['snippet']['country']
こういうのに安全にアクセスしたい!417
関数
def safe_get(dct, keys, default=None):
"""
辞書やリストから安全にネストされた値を取得する。
存在しない場合はデフォルト値を返す。
:param dct: 辞書やリスト
:param keys: 取得したい値のキーやインデックスのリスト
:param default: キーが存在しない場合に返すデフォルト値
:return: キーが存在する場合はその値、存在しない場合はデフォルト値
"""
for key in keys:
try:
dct = dct[key]
except (KeyError, IndexError, TypeError):
return default
return dct
使用例
country = safe_get(response, ['items', 0, 'snippet', 'country'], default='Unknown')