Загрузка данных


    def is_suspicious(log_dict: dict, blacklist: set) -> bool:
    if log_dict["ip"] in blacklist:
        return True

    if log_dict["status_code"] in (401, 403):
        return True

    if log_dict["path"].startswith("/admin"):
        return True

    return False


def count_failed_logins(logs_list: list) -> dict:
    result = {}

    for log in logs_list:
        if log["status_code"] == 401:
            ip = log["ip"]
            result[ip] = result.get(ip, 0) + 1

    return result