YAML ve SQLAlchemy kullanıyorum. Nesnemi tanımladım ve YAML'i sadece iyi yazdırmak için kullanabiliyorum. Ancak, bir SQLAlchemy sorgusundan döndürülen nesne üzerinde YAML kullanmaya çalıştığımda, can't pickle int objects
hatasıyla başarısız oluyor. SQLAlchemy'den döndürülen örneği yazdırdım ve doğru türünü gösteriyor. Ben kod let konuşma yapmak:Nesne SQLAlchemy'den geldiğinde int nesnesi hatası alamıyor musunuz?
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:[email protected]/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))
"Örnek" türü nedir? Bir yaml.dump (10) iyi çalışıyor, bu yüzden gerekli pickling yöntemine sahip olmayan bir SQLAlchemy türü olabilir (ör.kendisi tarafından seçilebilir türleri döndüren bir __reduce__ yöntemi). –