在Python中,如果字段为空,返回json字段的优雅方法
我有一个关于我的烧瓶REST API的愚蠢问题。如果我有一个包含大量信息的用户模型,我想将其作为json返回。但是有些信息仍然是空的,没有任何值(NULL)。将其作为空字符串或其他默认值返回而不是作为null返回的优雅方式是什么 大概是这样的:在Python中,如果字段为空,返回json字段的优雅方法,python,python-3.x,rest,flask,Python,Python 3.x,Rest,Flask,我有一个关于我的烧瓶REST API的愚蠢问题。如果我有一个包含大量信息的用户模型,我想将其作为json返回。但是有些信息仍然是空的,没有任何值(NULL)。将其作为空字符串或其他默认值返回而不是作为null返回的优雅方式是什么 大概是这样的: { 'username': 'foo', 'fullname' : '' } def json(self): return { 'username': self.phone, 'fullname': s
{
'username': 'foo',
'fullname' : ''
}
def json(self):
return {
'username': self.phone,
'fullname': self.fullname or 'some default value'
}
与此相反:
{
'username': 'foo',
'fullname' : null
}
这是我的职责:
def json(self):
return {
'username': self.phone,
'fullname': self.fullname
}
这是用户模型:
class UserModel(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80))
password = db.Column(db.String(80))
fullname = db.Column(db.String(80))
一种方法是在您的返回指令中包含条件:
def json(self):
return {
'username': self.phone if self.phone else '',
'fullname': self.fullname if self.fullname else ''
}
一种方法是在您的返回指令中包含条件:
def json(self):
return {
'username': self.phone if self.phone else '',
'fullname': self.fullname if self.fullname else ''
}
类允许指定default=
参数:
class UserModel(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80))
password = db.Column(db.String(80))
fullname = db.Column(db.String(80), default="")
类允许指定默认值=
参数:
class UserModel(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80))
password = db.Column(db.String(80))
fullname = db.Column(db.String(80), default="")
基本上,如果要在Python中重写
None
值,可以使用或运算符,如下所示:
{
'username': 'foo',
'fullname' : ''
}
def json(self):
return {
'username': self.phone,
'fullname': self.fullname or 'some default value'
}
如果self.fullname
有值,则将返回该值。但是如果是None
,则会出现“一些默认值”
希望对您有所帮助。基本上,如果您想在Python中重写None
值,您可以使用或运算符,如下所示:
{
'username': 'foo',
'fullname' : ''
}
def json(self):
return {
'username': self.phone,
'fullname': self.fullname or 'some default value'
}
如果self.fullname
有值,则将返回该值。但是如果是None
,则会出现“一些默认值”
希望有帮助。你能发布你的名义用户模型结构(定义)吗?@RomanPerekhrest我已经编辑了我的帖子,你能发布你的名义用户模型结构(定义)吗?@RomanPerekhrest我编辑了我的post@ikhsan我想您应该将其设置为不可为null,否则如果在初始化后赋值,则None
值可能仍然存在,它们仍将由API提供服务。@ikhsan我想您应该将其设置为不可为null,否则如果在初始化后赋值,则None
值可能仍然存在,并且它们仍将由API提供服务。