SQLAlchemy: Error is SQLAlchemy object is not iterable
ребята.
Я использую такой код для работы с SQL с помощью Python:
import logging
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from extensions.db_map import DownloadRequestIds
logging.basicConfig(format=u'%(filename)s [ LINE:%(lineno)+3s ]#%(levelname)+8s [%(asctime)s] %(message)s',
level=logging.DEBUG)
engine = create_engine(f'sqlite:///db/botuploads.db')
class SQLStorage():
def __init__(self):
self.session_factory = sessionmaker(bind=engine)
self.Session = scoped_session(self.session_factory)
def add_item_to_sql(self, url, start, end, user_id, chat_id, message_id, lang):
session = self.Session()
new_item = DownloadRequestIds(url=url,
start=start,
end=end,
user_id=user_id,
chat_id=chat_id,
message_id=message_id,
lang=lang)
try:
session.add(new_item)
session.commit()
except Exception as e:
logging.error(
'Couldn\'t upload {}. Error is {}'.format(new_item, e))
else:
logging.info(
f'Successfully uploaded and saved to DB file {new_item}')
finally:
session.close()
def get_item_to_sql(self):
global item
session = self.Session()
try:
item = session.query(DownloadRequestIds).filter_by(id=1).first()
print(type(item))
data = [[x for x in item]]
logging.info(f'get_item_to_sql: {item}')
except Exception as e:
logging.error(
'Couldn\'t upload {}. Error is {}'.format(item, e))
else:
logging.info(
f'Successfully uploaded and saved to DB file {item}')
finally:
session.close()
self.delete_item_to_sql(item)
return item
def delete_item_to_sql(self, item):
session = self.Session()
try:
session.delete(item)
session.commit()
except Exception as e:
session.rollback()
logging.error(
'Couldn\'t upload {}. Error is {}'.format(item, e))
else:
logging.info(
f'Successfully uploaded and saved to DB file {item}')
finally:
session.close()
Добавление в БД идет нормально.
Но когда я пробую делать выборку из БД (get_item_to_sql), то получаю ошибку
Couldn't upload <extensions.db_map.DownloadRequestIds object at 0x7fb5f4a958b0>. Error is 'DownloadRequestIds' object is not iterable
Что-то не могу понять где ошибаюсь и почему не могу итерироваться по SQLAlchemy объекту.