@ilwdchar_compat<EOL>def _get_column_dtype(llwcol):
try:  <EOL><INDENT>dtype = llwcol.dtype<EOL>if dtype is numpy.dtype('<STR_LIT:O>'):  <EOL><INDENT>raise AttributeError<EOL><DEDENT>return dtype<EOL><DEDENT>except AttributeError:  <EOL><INDENT>try:  <EOL><INDENT>llwtype = llwcol.parentNode.validcolumns[llwcol.Name]<EOL><DEDENT>except AttributeError:  <EOL><INDENT>try:<EOL><INDENT>return type(llwcol[<NUM_LIT:0>])<EOL><DEDENT>except IndexError:<EOL><INDENT>return None<EOL><DEDENT><DEDENT>else:  <EOL><INDENT>from ligo.lw.types import (ToPyType, ToNumPyType)<EOL>try:<EOL><INDENT>return ToNumPyType[llwtype]<EOL><DEDENT>except KeyError:<EOL><INDENT>return ToPyType[llwtype]<EOL><DEDENT><DEDENT><DEDENT>
Get the data type of a LIGO_LW `Column`

    Parameters
    ----------
    llwcol : :class:`~ligo.lw.table.Column`, `numpy.ndarray`, iterable
        a LIGO_LW column, a numpy array, or an iterable

    Returns
    -------
    dtype : `type`, None
        the object data type for values in the given column, `None` is
        returned if ``llwcol`` is a `numpy.ndarray` with `numpy.object_`
        dtype, or no data type can be parsed (e.g. empty list)