如果JSON字符串中不存在属性,如何返回空字符串?

2024-10-04 05:32:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON字符串,我试图使用Python从中提取属性值,如下所示:

def extract_property(node, to_extract):
    data, stat = zk.get(node)
    jsonString = data.decode("utf-8")
    jStr = json.loads(jsonString)
    return jStr[to_extract]

现在有可能,我试图提取的属性值在JSON字符串中不存在,因此它将失败。如果JSON字符串中根本不存在属性,如何返回空字符串。在

如果属性不存在,此行可能失败。在

^{pr2}$

Tags: to字符串nodejsondataget属性def
2条回答

和Zaur一样,我也会建议jStr.get(to_extract, ''),但我推测OP对此的反对意见是{}可能是或者可能不是adict(如果它是dict,那么{}将在python2或3中工作)。如果这就是问题所在,那么以下内容可能涵盖更广泛的情况:

try: return jStr[to_extract]
except: return ''

{cdi>简单地使用}:

return jStr.get(to_extract, '')

有关详细信息,请参见https://docs.python.org/3/library/stdtypes.html#dict.get。在

升级版:

感谢@jez指出,jStr不能保证是字典。然而,JSON解析的结果是已知的:如果它不是字典,那么它就是一个列表、数字或字符串。在这种情况下,将其包装到一个类型检查例程中,例如:

^{pr2}$

相关问题 更多 >