首页 > 解决方案 > 如何从python中的表中访问列数据?

问题描述

我想从具有多列的表中获取列数据以生成一些报告。

我尝试编写一个函数来访问列数据:

def get_data_from_column(status, "something_am_missing"):
    report_data = ReportRepository.get(status.id)
    return report_data.get(ReportRepository)

我想访问 table 中每一列的数据report

class Status(db.Model, BaseModel):
    __tablename__ = "status"

    id = db.Column(db.Integer, primary_key=True) #automagically becomes an auto increment
    audience = db.Column(db.String(), nullable=False)
    target = db.Column(db.String())
    report_path = db.Column(db.String())
    status = db.Column(db.String())
    score_column = db.Column(db.String())
    target_column = db.Column(db.String())
    update_time = db.Column(db.DateTime, nullable=False, server_default=func.now())
    product = db.Column(db.String())
    product_run_id = db.Column(db.String())
    command_id = db.Column(db.String())

    report = relationship("Report", back_populates="status")


    def __init__(self, audience, target, report_path, status, score_column, target_column, update_time, product, product_run_id, id_space, seed_file, background_file, evaluation_type, cluster, qubole_token, command_id):
        self.audience = audience
        self.target = target
        self.report_path = report_path
        self.status = status
        self.score_column = score_column
        self.target_column = target_column
        self.update_time = update_time
        self.product = product
        self.product_run_id = product_run_id

    def succeeded(self):
        return self.status == StatusStates.SUCCESS

class Report(db.Model, BaseModel):
    __tablename__ = "report"

    report_id = db.Column(db.Integer, db.ForeignKey(Status.id),primary_key = True)
    gains_data = db.Column(db.TEXT())
    score_histogram_data = db.Column(db.TEXT())
    descriptors_data = db.Column(db.TEXT())
    baselines_data = db.Column(db.TEXT())
    county_data = db.Column(db.TEXT())
    state_data = db.Column(db.TEXT())
    features_data = db.Column(db.TEXT())

    status = relationship("Status", back_populates="report")


    def __init__(self, gains_data, score_histogram_data, descriptors_data, baselines_data, county_data, state_data,features_data):
        self.gains_data = gains_data
        self.score_histogram_data = score_histogram_data
        self.descriptors_data = descriptors_data
        self.baselines_data = baselines_data
        self.county_data = county_data
        self.state_data = state_data
        self.features_data = features_data

    def succeeded(self):
        return self.report == StatusStates.SUCCESS

下面的类是我为各种方法声明的类。

class ReportRepository:
    @staticmethod
    def get(report_id):
        return Report.query.filter_by(id=report_id).one()

我无法编写一个从每一列中提取数据的函数?

标签: pythonpostgresqlflaskflask-sqlalchemy

解决方案


推荐阅读