Return 单个 peewee 记录为字典
Return single peewee record as dict
如果我使用 peewee 从数据库中获取多条记录,我可以像这样将它们转换为字典:
users = User.select().where(User.attribute == some_value).dicts()
但是,很多时候我只想要一条记录(或者知道只会返回一条记录),所以我可以这样做:
one_user = User.get(User.name == some_value)
但是我无法在返回的对象上调用 .dicts()
。
有没有办法以 dict 形式获取 get 查询的结果?
目前我唯一能想到的就是unpythonic
one_user = User.select().where(User.name == some_value).dicts()[0]
参照Peewee model to JSON
我认为您应该实现 link 中定义的 str 方法,然后在执行时执行。
user = User.get(User.name == some_value)
userDict = json.dumps(str(user))
你会得到用户的字典
peewee
有一个扩展函数 model_to_dict
,在 playhouse.shortcuts
中定义。来自示例:
>>> from playhouse.shortcuts import model_to_dict
>>> user = User.create(username='charlie')
>>> model_to_dict(user)
{'id': 1, 'username': 'charlie'}
您可以使用“.get()”:
one_user = User.select().where(User.name == some_value).dicts().get()
尽管您还可以添加辅助方法:
class User(Model):
@classmethod
def get_as_dict(cls, expr):
query = cls.select().where(expr).dicts()
return query.get()
是python。你可以扩展它。
如果我使用 peewee 从数据库中获取多条记录,我可以像这样将它们转换为字典:
users = User.select().where(User.attribute == some_value).dicts()
但是,很多时候我只想要一条记录(或者知道只会返回一条记录),所以我可以这样做:
one_user = User.get(User.name == some_value)
但是我无法在返回的对象上调用 .dicts()
。
有没有办法以 dict 形式获取 get 查询的结果?
目前我唯一能想到的就是unpythonic
one_user = User.select().where(User.name == some_value).dicts()[0]
参照Peewee model to JSON
我认为您应该实现 link 中定义的 str 方法,然后在执行时执行。
user = User.get(User.name == some_value)
userDict = json.dumps(str(user))
你会得到用户的字典
peewee
有一个扩展函数 model_to_dict
,在 playhouse.shortcuts
中定义。来自示例:
>>> from playhouse.shortcuts import model_to_dict
>>> user = User.create(username='charlie')
>>> model_to_dict(user)
{'id': 1, 'username': 'charlie'}
您可以使用“.get()”:
one_user = User.select().where(User.name == some_value).dicts().get()
尽管您还可以添加辅助方法:
class User(Model):
@classmethod
def get_as_dict(cls, expr):
query = cls.select().where(expr).dicts()
return query.get()
是python。你可以扩展它。