python json.loads字符串“0.0”没问题,但“0.0.0”抛出异常

时间:2016-04-05 13:16:00

标签: python json

我希望输入数据为json,但我得到“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”

2 个答案:

答案 0 :(得分:2)

有效负载0.0是有效的JSON代码,只包含一个浮点数。 0.0.0不是因为字符串需要用引号括起来。

如果您希望0.0产生错误,则应在JSON代码的结构上添加自己的限制。

答案 1 :(得分:0)

'0.0.0'不是有效的JSON格式。它不能像这样解码。它不是浮动的,它也不是一个字符串。要将其作为字符串加载,您需要使用双引号'"0.0.0"'