pythonで配列に安全にアクセスする方法

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')

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です