首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >显示比"No JSON object than be decoded“更好的错误信息

显示比"No JSON object than be decoded“更好的错误信息
EN

Stack Overflow用户
提问于 2013-02-16 00:54:12
回答 7查看 308.1K关注 0票数 132

从某个长而复杂的JSON文件加载数据的Python代码:

代码语言:javascript
复制
with open(filename, "r") as f:
  data = json.loads(f.read())

(注意:最好的代码版本应该是:

代码语言:javascript
复制
with open(filename, "r") as f:
  data = json.load(f)

但两者都表现出相似的行为)

对于许多类型的JSON错误(缺少分隔符、字符串中不正确的反斜杠等),这将打印一条很有帮助的消息,其中包含发现JSON错误的行号和列号。

然而,对于其他类型的JSON错误(包括经典的“在列表中的最后一项上使用逗号”,以及大写true/false之类的其他事情),Python的输出只是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "myfile.py", line 8, in myfunction
    config = json.loads(f.read())
  File "c:\python27\lib\json\__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "c:\python27\lib\json\decoder.py", line 360, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "c:\python27\lib\json\decoder.py", line 378, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

对于这种类型的ValueError,如何让Python告诉您错误在JSON文件中的位置?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14899506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档