Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如果字段为空,返回json字段的优雅方法_Python_Python 3.x_Rest_Flask - Fatal编程技术网

在Python中,如果字段为空,返回json字段的优雅方法

在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

我有一个关于我的烧瓶REST API的愚蠢问题。如果我有一个包含大量信息的用户模型,我想将其作为json返回。但是有些信息仍然是空的,没有任何值(NULL)。将其作为空字符串或其他默认值返回而不是作为null返回的优雅方式是什么

大概是这样的:

{ 
  '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提供服务。