繁体   English   中英

将单个peewee记录作为dict返回

[英]Return single peewee record as dict

如果我从peewee的数据库中获取多条记录,我可以将它们转换为这样的dicts:

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_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()

这是蟒蛇。 你可以扩展它。

参考Peewee模型到JSON

我认为你应该实现链接中定义的str方法,然后当你这样做。

user = User.get(User.name == some_value)

userDict = json.dumps(str(user))

你将获得用户的dictioanry

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM