【发布时间】:2017-02-20 11:49:26
【问题描述】:
我有一个 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 字符串中根本不存在属性,如何返回空字符串。
如果属性不存在,此行可能会失败。
return jStr[to_extract]
【问题讨论】:
-
if to_extract in jStr: -
你不能去
if jStr[to_extract]: return jStr[to_extract] else: return None -
@MooingRawr 如果属性不存在,也会出现同样的错误。
-
@barmar 我明白了,每天都会学到一些新东西,出于某种原因,我认为 JSON 对象很特殊,如果找不到该属性,则不会返回任何内容。现在想来,这似乎很愚蠢。
-
@MooingRawr 没有 JSON 对象这样的东西。 JSON 是数据结构的字符串表示形式。解码后,它只是一种本机数据类型。在本例中,它是一个 Python 字典。