sho*_*ang 26 python json peewee
我正在使用peewee作为ORM创建API,我需要能够将peewee模型对象转换为JSON对象以发送给用户.有谁知道这样做的好方法?
col*_*fer 75
Peewee拥有model_to_dict和dict_to_model佣工在playhouse.shortcuts扩展模块.
你可以使用如下:
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))
Run Code Online (Sandbox Code Playgroud)
另请注意,model_to_dict()可以通过相关模型进行递归,包括反向引用模型,并排除某些字段被序列化.
user = User.select().where(User.id == 1).get()
model_to_dict(user) #to Dict
Run Code Online (Sandbox Code Playgroud)
users = list(User.select().where(User.name ** 'a%').dicts())
Run Code Online (Sandbox Code Playgroud)
Ali*_*MAR -8
你可以这样做:
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
Run Code Online (Sandbox Code Playgroud)