json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 1 )
异常解读
该异常的格式一般为:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 1 )
注意后面的数字 line 123456789(数字可以为任意值), column 123456789(数字可以为任意值),char 123456789 (数字可以为任意值)
异常的中文释义:
JSONDecodeError(JSON 解码错误)Expecting value
:期望值错误,该异常出现表示待格式的字符串不正确,简单里面就是无法格式成字符串。
本问题,你可以先把字符串复制到一些 JSON 格式化工具中,先测试一下是否可以正常格式化,在通过代码进行解决。
异常解决方案
解决思路是反复测试 JSON 格式是否正确。
通过搜索引擎检索 JSON 在线格式化工具,然后进行格式化测试直到格式化工具可以正常解析为止。
工具举例:https://www.bejson.com/explore/index_new/
本案例就是因为最后多个一个逗号 ,
导致的。
附录
本系列文章只供记录 Python 日常开发过程中 偶遇 BUG,提供给学生作为参考数据与解决方案用,属于记录型博客,查阅到的读者希望可解决你的问题。
错误提示样板,可以与你的错误进行比对。
Traceback (most recent call last):
File "g:/MyFiles/xiaoke/idnex2.py", line 25, in <module>
get_db()
File "g:/MyFiles/xiaoke/idnex2.py", line 20, in get_db
db = json.loads(s)
File "F:\P3.6\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "F:\P3.6\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "F:\P3.6\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 37902 column 1 (char 961946)