2016-04-05 4 views
0

私は入力データをjsonとして期待していますが、 "0.0"があり、コードがクラッシュしました。だから私は例外を追加しましたが、一例ではそれ `sの下に動作していないとが例外投げません:python json.loads string "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浮動小数点数が1つだけである。 0.0.0は、文字列を引用符で囲む必要があるためではありません。

0.0にエラーが発生した場合は、構造体のJSONコードに独自の制限を加える必要があります。

0

'0.0.0'は有効なJSON形式ではありません。そのようにデコードすることはできません。これは浮動小数点ではなく、文字列でもありません。文字列としてロードするには、二重引用符「'"0.0.0"'」を使用する必要があります。

関連する問題