How to return empty string if property doesn't exist in the JSON string?
本问题已经有最佳答案,请猛点这里访问。
我有一个JSON字符串,我正尝试使用python从中提取属性值,如下所示:
1 2 3 4 5 | 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字符串中根本不存在属性,我如何返回空字符串。
如果属性不存在,此行可能失败。
1 | return jStr[to_extract] |
和Zaur一样,我也会建议使用
1 2 | try: return jStr[to_extract] except: return '' |
只需使用
1 | return jStr.get(to_extract, '') |
有关详细信息,请参阅https://docs.python.org/3/library/stdtypes.html dict.get。
UPD:
多亏@jez指出,
1 2 3 4 | try: return jStr[to_extract] except (KeyError, AttributeError): return '' |