显示比“无法解码 JSON 对象”更好的错误消息

2024-02-10

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

with open(filename, "r") as f:
  data = json.loads(f.read())

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

with open(filename, "r") as f:
  data = json.load(f)

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

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

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

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 文件中的错误在哪里?


我发现simplejson在许多情况下,模块会给出更多描述性错误,其中内置json模块模糊。例如,对于列表中最后一项后有逗号的情况:

json.loads('[1,2,]')
....
ValueError: No JSON object could be decoded

这不是很具有描述性。相同的操作与simplejson:

simplejson.loads('[1,2,]')
...
simplejson.decoder.JSONDecodeError: Expecting object: line 1 column 5 (char 5)

好多了!对于其他常见错误(例如大写)也是如此True.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

显示比“无法解码 JSON 对象”更好的错误消息 的相关文章

  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 如何在 select 和 option 标签中添加 JSON 数据?

    我有这个html代码 div class searchfilter div class searchwrapper div div
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 您可以格式化 pandas 整数以进行显示,例如浮点数的“pd.options.display.float_format”?

    我见过this https stackoverflow com questions 18404946 py pandas formatdataframe and this https stackoverflow com questions
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • 如何将张量流模型部署到azure ml工作台

    我在用Azure ML Workbench执行二元分类 到目前为止 一切正常 我有很好的准确性 我想将模型部署为用于推理的 Web 服务 我真的不知道从哪里开始 azure 提供了这个doc https learn microsoft co
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s

随机推荐

  • 从计算着色器中的 RWTexture2D 加载

    据我所知 HLSL 着色器模型 5 0 存在一个限制 即无法从非标量类型的 RWTexture2D 资源加载数据 也就是说 以下行为是非法的 RWTexture2D
  • 与XBoard(国际象棋引擎)通信(C++/C)

    我只是在尝试制作一个基本的国际象棋引擎 我从中得到了很多建议http web archive org web 20070704121716 http www brucemo com compchess programming alphabe
  • 防止在 ASP.NET 输入字段中按 Enter 进行回发

    我在 javascript 和 asp net 中的 Enter 键有问题 我有一个像这样的控件 带有一个 textchanged 事件 它会进行查找 但我想在用户输入时控制它
  • 从 Base 向下转换为 Derive Segmentation 错误

    我正在学习动态转换并搜索了很多网站 我得出的结论是动态转换可以从基础转换为派生并派生到基础 但是 当我从 Base 进行强制转换以派生时 它会出现分段错误 这是代码 我期望从 A 中得到一个 但即使在铸造之后它也给了我一个 D class
  • 如何使用Dojo动态添加div?

    我有以下静态 div div div 我想使用 dojo 在 div1 中动态添加一个 id 为 div1 1 的 div 我该怎么做 您可以仅使用 Dojo Base 来完成此操作 如果您使用 trunk 或 Dojo 1 3 则无需包含
  • Android 深度链接到应用程序

    我正在尝试创建一个可以通过电子邮件发送的链接 当在安装了我的应用程序的 Android 设备上打开该链接时 该链接将自动打开我的应用程序中的正确页面 我已经通过几种不同的方式部分地解决了这个问题 但发现了一些问题 我想知道是否有人有解决方案
  • pagehide 和 pageshow 事件在 ios chrome 上无法按预期工作

    Apple 文档在此处列出了可用的 iOS 浏览器事件 https developer apple com library archive documentation AppleApplications Reference SafariWe
  • 在哪里可以找到以前版本的 Azure Service Fabric SDK?

    我需要找到 Azure Service Fabric SDK 的较旧 SDK 版本 准确地说是 2 1 163 它不再在 Web Platform Installer 上可用 并且在其他地方也找不到它 有人可以指点我吗 非常感谢 这些是链接
  • “调用布尔值的成员函数 fetch_assoc()”[重复]

    这个问题在这里已经有答案了 我看到了很多关于此错误的问题 但似乎没有一个答案可以解决我的问题 抱歉 如果我错过了一个 我的脚本一直给我一个错误提示 调用布尔值的成员函数 fetch assoc 但我不明白这是怎么回事 Both mysqli
  • jQuery 问题 - 未捕获的类型错误:无法读取未定义的属性“浏览器”

    我正在尝试向网站添加滑块 当我在本地测试时 它在标准 html 文件中工作正常 但是当我尝试将其传输到 WordPress 网站时 我不断收到此错误 未捕获的类型错误 无法读取未定义的属性 浏览器 它指向问题代码中的第 11 行 isIE
  • libjpeg 版本6b jpeg_stdio_src 与 jpeg_mem_src

    我正在使用 Libjpeg 版本 6b 在版本 8 中 他们有一个很好的函数 可以从内存中读取数据 称为jpeg mem src 不幸的是版本 6b没有这个功能 我可以使用什么来直接从内存读取压缩数据 我所看到的只是jpeg stdio s
  • 如何在 yii2 的插入验证器上使用必需的?

    任何人都可以对如何使用提出建议 on gt insert 验证在yii2 我用过 array field name required on gt insert in Yii1 but in yii2它不会检查我是否设置 field name
  • 如何根据 frontmatter 对 GraphQL 查询进行排序

    我是新来的GraphQL并已成功对数据进行排序allMarkDownRemark查询 但是我需要的是能够为我们提供allFile查询 然后仍然按frontmatter 这可能吗 这是返回正确数据的查询 删除排序 allFile limit
  • Javascript 在页面加载时预先选择文本区域

    我有一个带有文本区域的页面 当加载页面时 我想预先选择文本区域 就像 twitter com 一样 这样用户就不必单击它 你知道怎么做吗 以前谢谢 罗德里戈 阿尔维斯 维埃拉 document ready function text are
  • TSQL alter table 添加级联删除和更新约束

    我正在尝试在 tsql 中创建更新和删除约束 我尝试了几种不同的方法 现在我有点困惑和沮丧 看起来很简单 我知道你无法改变现有的约束 所以我不确定如何做到这一点 alter table AllowedCars add constraint
  • 使用应用程序池标识的 IIS 应用程序丢失主令牌?

    这是一个关于模糊问题的问题 我尝试提供所有相关数据 希望有人能提供有用的信息 对冗长的描述表示歉意 我们的网络应用程序 我们有一个在 IIS 7 5 中运行的 NET 4 Web 应用程序 用于访问 Active Directory 和 S
  • GWT 中的 ByteBuffer 到 String

    On a PlayN http code google com p playn 项目我有以下Java代码 import com google common base Charsets import java nio ByteBuffer B
  • Chrome 中的 cordova-plugin-file:cordova 未定义

    我在 ionic 应用程序中使用 cordova plugin file 下载图像并保存到本地 当我在模拟器或iPhone中运行它时 没有错误 但是当我在Chrome中测试它时 它说 cordova is not defined当我尝试访问
  • 哪个 Firefox 版本与 Selenium 2.53.0 兼容?

    哪个 Firefox 版本与 Selenium 2 53 0 兼容 我尝试使用 Firefox 45 0 但出现以下异常 org openqa selenium WebDriverException Failed to connect to
  • 显示比“无法解码 JSON 对象”更好的错误消息

    从一些长而复杂的 JSON 文件加载数据的 Python 代码 with open filename r as f data json loads f read 注 最好的代码版本应该是 with open filename r as f