def get_table_info(table):
    """查询数据表中的字段信息
    参数
        table : 数据表, 可以是表名字符串或者 ORM 对象
    返回
        DataFrame, 包含各字段的中英文名称以及类型等信息
    """

    def _convert_df(orm_object):
        from sqlalchemy.dialects.mysql import dialect
        from collections import defaultdict
        dic = defaultdict(list)
        for column in orm_object.__table__.columns:
            dic['name_en'].append(column.name)
            dic['name_zh'].append(column.doc)
            dic['type'].append(column.type.compile(dialect=dialect()))
            dic['nullable'].append(column.nullable)
        return pd.DataFrame(dic)

    if isinstance(table, six.string_types):
        # 处理形式如 'balance', 'income' 等 ORM 变量的字符串
        finance_service = import_module(".finance_service", __package__)
        if table in finance_service.__all__[1:]:
            orm = getattr(finance_service, table)
            return _convert_df(orm)
        # 处理参数直接为数据库表名字符串的情况
        else:
            return JQDataClient.instance().get_table_info(table=table)
    # 处理形式如 valuation, balance 等 ORM 对象
    elif issubclass(table, Base):
        return _convert_df(table)
    # 处理形式如 finance.STK_INCOME_STATEMENT 等 ORM 对象
    elif hasattr(table, "__tablename__"):
        return JQDataClient.instance().get_table_info(table=table.__tablename__)
    else:
        raise Exception("未知的 table 对象: %s, 类型 %s" % (table, type(table)))
查询数据表中的字段信息
参数
table : 数据表, 可以是表名字符串或者 ORM 对象
返回
DataFrame, 包含各字段的中英文名称以及类型等信息
jqdatasdk/api.py