Я пробую приведенный ниже код, но я получаю сообщение об ошибке при загрузке данных на фрейм данных. Я думаю, это потому, что я объявил таблицу как класс:
def get_task_products(task_id):
before = time.time()
session = get_new_session()
persisted_task_products =session.query(TaskProducts). \
filter(TaskProducts.task_id == task_id). \
options(load_only(TaskProducts.product_id)).all()
df = pd.DataFrame(persisted_task_products)
df.columns = persisted_task_products[0].keys()
print_debug(
'db_manager.persisted_motionlesstime: query result (after {0} seconds) : {1})'. \
format(time.time() - before, df))
if not df or len(df) != 0:
return df
session.close()
Объявление таблицы:
class TaskProducts(Base):
__tablename__ = 'task_products'
id = Column(BigInteger, autoincrement=True, primary_key=True)
task_id = Column(Integer, nullable=False)
product_id = Column(Integer, nullable=False)
def __repr__(self):
return """
<TaskProducts
(
id=%s, task_id=%s, product_id=%s
)>""".replace(" ", "").replace("\n", " ") % (
self.id, self.task_id, self.product_id
)
, но я получил ошибку
df.columns = persisted_task_products[0].keys()
AttributeError: 'TaskProducts' object has no attribute 'keys'
Как мог Я решил эту проблему?