from json import load def part1(data) -> int: if type(data) is list: return sum(part1(d) for d in data) elif type(data) is dict: return sum(part1(v) for k, v in data.items()) if type(data) is int: return data return 0 def part2(data) -> int: if type(data) is list: return sum(part2(d) for d in data) elif type(data) is dict and 'red' not in data.values(): return sum(part2(v) for k, v in data.items()) if type(data) is int: return data return 0 if __name__ == '__main__': with open('input') as f: d = load(f) print(part1(d)) print(part2(d))