def _parse_value( self, content ):
        """
          Consume a field value.
            :param: content str The input to consume
            :return: list The collected value and any remaining content.
        """
        c = ''
        content = content.lstrip( " " )
        try:
            c = content[ 0 ]  # string index out of range 0
        except __HOLE__:
            pass

        if len( content ) == 0 or c == ',':
            return [ None, content ]
        elif c == '"':
            return self._parse_string( content[1:] )
        elif c == '#':
            return self._parse_rid( content[1:] )
        elif c == '[':
            return self._parse_collection( content[1:] )
        elif c == '<':
            return self._parse_set( content[1:] )
        elif c == '{':
            return self._parse_map( content[1:] )
        elif c == '(':
            return self._parse_record( content[1:] )
        elif c == '%':
            return self._parse_bag( content[1:] )
        elif c == '_':
            return self._parse_binary( content[1:] )
        elif c == '-' or self._is_numeric( c ):
            return self._parse_number( content )
        elif c == 'n' and content[ 0:4 ] == 'null':
            return [ None, content[ 4: ] ]
        elif c == 't' and content[ 0:4 ] == 'true':
            return [ True, content[ 4: ] ]
        elif c == 'f' and content[ 0:5 ] == 'false':
            return [ False, content[ 5: ] ]
        else:
            return [ None, content ]
dataset/ETHPy150Open mogui/pyorient/pyorient/serializations.py/OrientSerializationCSV._parse_value