我正在遍历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
但是我想知道这是否是最快的解决方案。由于我要处理数亿个对象,因此任何提速都会非常有益。
答案 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中最快的变体。