正解python 3 jsonエラー:from None json.decoder.JSONDecodeError: Expecting value: line 1 column 6 (char 5)
1893 ワード
環境
問題の説明
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 6 (char 5)
import json
str_json = '{"a":NULL, "b":1}'
json_data = json.loads(str_json)
エラー原因分析
str_jsonでは5文字目から不正文字、すなわち「NULL」【】つまり、このようなエラーは、json文字列が不正であることを示しています.例えば、フォーマットエラー、値タイプエラーなどです.
ソリューション
import json
str_json = '{"a":NULL, "b":1}'
try:
json_data = json.loads(str_json)
except Exception as e:
print('error:', e)
をスキップ出力:error: Expecting value: line 1 column 6 (char 5)
import json
json_data = {"a":None, "b":1}
print('json_data:', json_data)
str_json = json.dumps(json_data) # json.dumps()
print('str_json:', str_json)
json_data = json.loads(str_json)
print('json_data:', json_data)
出力:json_data: {'a': None, 'b': 1}
str_json: {"a": null, "b": 1}
json_data: {'a': None, 'b': 1}
str_が表示されますjsonにnullが表示され、None/NuLLではありません.