如果附加变量为`None`

时间:2019-06-10 17:24:21

标签: python

我正在遍历JSON树并将特定值附加到字符串。

有时,JSON对象返回None,并且我的代码给出了错误,因为Python不允许将None附加到字符串中。

在这种情况下,防止附加任何内容的最有效的计算方法是什么?我将要遍历数亿个字符串对于速度非常重要。

我找到的最常见的解决方案是使用filter(None,yourList),但不适用于我的情况,因为我要遍历具有不同树结构的不同JSON对象,并且仅搜索和提取某些值。

我要处理数百万个JSON对象,因此,速度和计算效率比代码紧凑性更为重要(如果这是一个因素)。

总而言之

a = None

b = 'this string' + somefunction(a)

print(b)
  

此字符串

这是我能想到的最好的

def somefunction(strr):
    if strr == None:
        return ''
    else: 
        return strr

但是我想知道这是否是最快的解决方案。由于我要处理数亿个对象,因此任何提速都会非常有益。

1 个答案:

答案 0 :(得分:2)

如果SqlParameter.SqlDbType等于无,则可以将a转换为''

a = str(a) if a is not None else ''

然后将其添加到b

b = 'WAKA' + a

或者,如果您不介意将0 / Nones / empty-somethings转换为'',则可以编写如下内容:

b = 'WAKA' + (a if a else '')

或:

b = 'WAKA' + (a or '')

我认为这些变体几乎是没有C代码的Python中最快的变体。