2016-04-05 36 views
0

我期望輸入數據爲json,但我得到「0.0」,我的代碼崩潰了。所以我添加例外,但例如在下面它`不工作,不引發異常python json.loads字符串「0.0」很好,但「0.0.0」拋出異常


import json 
msg_payload="0.0" 
try: 
     a = json.loads(msg_payload) 
except ValueError, e: 
     print("JSON FAIL") 
print a 

這個代碼拋出異常:


import json 
msg_payload="0.0.0" 
try: 
     a = json.loads(msg_payload) 
except ValueError, e: 
     print("JSON FAIL") 
print a 

那麼爲什麼那裏也不例外「0.0」和例外與字符串「0.0.0」

+4

因爲'0.0'是一個有效的浮點數。 – bereal

+5

如果您希望將其解析爲字符串,則該字符串需要包含文字引號。 'msg_payload = ' 「0.0.0」'' – jordanm

回答

2

有效負載0.0是有效的JSON代碼consi只刺激一個浮點數。 0.0.0不是因爲字符串需要用引號封裝。

如果你想讓0.0產生錯誤,你應該在JSON代碼的結構上添加自己的限制。

0

'0.0.0'不是有效的JSON格式。它不能被解碼。這不是一個浮動,也不是一個字符串。要將其作爲字符串加載,您需要使用雙引號'"0.0.0"'

相關問題