首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Peewee模型到JSON

Peewee模型到JSON
EN

Stack Overflow用户
提问于 2014-02-23 23:06:38
回答 7查看 34.5K关注 0票数 35

我正在使用peewee作为ORM创建一个API,我需要将peewee模型对象转换为JSON对象以发送给用户的能力。有谁知道这样做的好方法吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-02-24 10:05:18

你可以这样做:

代码语言:javascript
复制
class MyModel(peewee.Model):

  def __str__(self):
    r = {}
    for k in self._data.keys():
      try:
         r[k] = str(getattr(self, k))
      except:
         r[k] = json.dumps(getattr(self, k))
    return str(r)


class User(MyModel):
    email = CharField()
    status = CharField(default="enabled")
    firstname = CharField()
    lastname = CharField()
    class Meta:
        database = db
票数 -7
EN

Stack Overflow用户

发布于 2014-02-24 04:55:13

Peewee在model_to_dict扩展模块中有一个dict_to_modelplayhouse.shortcuts助手。

  • dict
  • model

您可以如下所示:

代码语言:javascript
复制
from playhouse.shortcuts import model_to_dict, dict_to_model

user_obj = User.select().where(User.username == 'charlie').get()
json_data = json.dumps(model_to_dict(user_obj))

还请注意,model_to_dict()可以通过相关的模型递归,包括反引用的模型,并排除某些字段被序列化。

票数 109
EN

Stack Overflow用户

发布于 2019-11-19 10:17:21

单取时

代码语言:javascript
复制
user = User.select().where(User.id == 1).get()
model_to_dict(user)  #to Dict

多取时

代码语言:javascript
复制
users = list(User.select().where(User.name ** 'a%').dicts()) 
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21975920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档