SqlAlchemy Mapper没有返回干净的UUID

时间:2010-08-03 16:55:41

标签: python sqlalchemy

我有一个用SqlAlchemy映射的表。在该表中是UUID列。当我尝试查询该表时,我得到了bytes_le格式的uuid。有没有什么方法可以告诉mapper返回一个干净的字符串表示?映射器的代码是:

Practice = Table('Practice',metadata,
                 schema='pulse',autoload=True, autoload_with=engine, quote_schema=True)
class PracticeMap(object):
    def __str__(self):
        return "%s" % self.Name
    def __repr__(self):
        return "Name: %s, UUID: %s" % (self.Name, self.uuid)
mapper(PracticeMap,Practice)

感谢。

1 个答案:

答案 0 :(得分:1)

您始终可以使用python uuid库重新格式化uuid:

import uuid
uuid_string = str(uuid.UUID(bytes_le=self.uuid))

如果你只需要__repr__的字符串表示就可以了。如果你想让你的对象的uuid属性存在于string-land中,你需要重命名column属性并提供你自己的uuid属性来包装它。