2016-04-05 30 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"'

相关问题