Не удается обработать ошибку объекта int, когда объект поступает из SQLAlchemy?

Я использую YAML и SQLAlchemy. Я определил свой объект и могу использовать YAML для его вывода на печать. Однако, когда я пытаюсь использовать YAML для объекта, возвращенного из запроса SQLAlchemy, он терпит неудачу с ошибкой не может обработать объекты int . Я распечатал экземпляр, возвращенный SQLAlchemy, и он показывает правильный тип. Я позволю коду говорить:

class HashPointer(Base):
    __tablename__ = 'hash_pointers'

    id = Column(Integer, primary_key=True)
    hash_code = Column(VARBINARY(64), unique=True)
    file_pointer = Column(Text)

    def __init__(self, hash_code, file_pointer):
        self.hash_code = hash_code
        self.file_pointer = file_pointer

    def __repr__(self):
        return "<HashPointer('%s', '%s')>" % (self.hash_code, self.file_pointer)

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
Engine = create_engine("mysql://user:pass@localhost/db", echo=True)
Session = sessionmaker(bind=Engine)
session = Session()
fhash = HashPointer(0x661623708235, "c:\\test\\001.txt")

# PRINTS FINE
print(yaml.dump(fhash))

for instance in session.query(HashPointer).all():
    # PRINTS FINE AS __repr__
    print instance

    # THROWS ERROR, 'CAN'T PICKLE INT OBJECTS'
    print(yaml.dump(instance))
5
задан Raymond Hettinger 21 October 2011 в 02:30
поделиться