def evaluate(self, item):
try:<EOL><INDENT>for match in PATH_PATTERN.finditer(self.field):<EOL><INDENT>path = match.group(<NUM_LIT:0>)<EOL>if path[<NUM_LIT:0>] == "<STR_LIT:[>":<EOL><INDENT>try:<EOL><INDENT>item = item[int(match.group(<NUM_LIT:1>))]<EOL><DEDENT>except IndexError:<EOL><INDENT>item = item[<NUM_LIT:0>]<EOL><DEDENT><DEDENT>else:<EOL><INDENT>item = item.get(path)<EOL><DEDENT><DEDENT><DEDENT>except (IndexError, TypeError, AttributeError):<EOL><INDENT>return None<EOL><DEDENT>return item<EOL>
Pull the field off the item