У меня есть приложение, которое добавляет некоторые элементы Python в базу данных.
Код SQLAlchemyCode выглядит следующим образом:
class DatabaseTable(base):
__tablename__ = 'TableName'
id = db.Column(Integer, primary_key=True, autoincrement=True)
pickeled_element_column = Column(sqlalchemy.types.PickleType, nullable=False)
Нет, я могу поместить элементы в свою базу данных с помощью:
db_object = DatabaseTable()
db_object.pickeled_element_column = object_to_pickle
session.add(db_object)
session.commit()
Пока это работает.
Приложение, указанное выше, уже находится в продуктивном использовании. Теперь я хочу скопировать некоторые из этих элементов базы данных в мой блокнот jupyter, чтобы поиграть и протестировать некоторые вещи.
Я думал копировать мой объект вручную из базы данных в строку python внутри jupyter. Строка маринада из моей базы данных выглядит так:
pickle_string = 0x800495FF020000000...5622E
Когда я не пытаюсь распаковать эту строку, я получаю переполнение стека невыполнения Ошибка:
pickle.loads(pickle_string.encode())
---------------------------------------------------------------------------
UnpicklingError Traceback (most recent call last)
<ipython-input-508-58d250332c2d> in <module>()
1 pickeled_string = "0x800495FF020000..E"
2
----> 3 pickle.loads(pickeled_string.encode())
UnpicklingError: unpickling stack underflow
Итак, вот мой вопрос.
Как скопировать элемент, выбранный в базу данных с помощью SQLAlchemy, и отменить его выбор в другом месте.