मैं वाईएएमएल और स्क्लेक्लेमी का उपयोग कर रहा हूं। मैंने अपनी ऑब्जेक्ट को परिभाषित किया है, और मैं इसे ठीक करने के लिए वाईएएमएल का उपयोग करने में सक्षम हूं। हालांकि, जब मैं SQLAlchemy क्वेरी से वापस ऑब्जेक्ट पर YAML का उपयोग करने का प्रयास करता हूं, तो यह त्रुटि can't pickle int objects
त्रुटि में विफल रहा है। मैंने एसक्लाक्लेमी से लौटाया गया उदाहरण मुद्रित किया, और यह सही प्रकार दिखा रहा है। मैं कोड को बात करने दूँगा:एसक्यूएलकेमी से ऑब्जेक्ट आने पर int ऑब्जेक्ट त्रुटि नहीं उठा सकता है?
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))
"उदाहरण" का प्रकार क्या है? एक yaml.dump (10) ठीक काम करता है, इसलिए मैं एक स्क्लेक्लेमी प्रकार हो सकता हूं जिसमें आवश्यक पिकलिंग विधि नहीं है (यानी।एक __reduce__ विधि जो खुद को पिकलेबल प्रकार देता है)। –