簡體   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