软件测试|json.decoder.JSONDecodeError: Expecting ‘,‘错误解决

2024-01-07 20:13:07

在处理JSON数据时,有时可能会遇到"json.decoder.JSONDecodeError: Expecting ','"的错误,如下图的情况,本文将介绍这个错误的原因以及一些常见的解决方法。

在这里插入图片描述

错误原因

"json.decoder.JSONDecodeError: Expecting ','"错误通常发生在解析JSON数据时,Python解析器期望在JSON对象或数组的元素之间看到逗号(','),但未找到逗号或者逗号的位置不正确。

JSON文件内容如下:

{
   "name": "kevin",
   "age": 28
   "team": "thunder"
}

解决方法

  1. 检查JSON数据格式

首先,检查JSON数据是否符合JSON的语法规则。确保每个键值对之间有逗号分隔,并且整个JSON结构是有效的。可以使用在线的JSON验证工具或JSON验证库来验证JSON数据是否正确。

  1. 检查逗号位置

在发生该错误时,查看错误消息中提到的位置,并检查该位置是否确实缺少了逗号。确保在每个元素之间都添加了逗号,并确保逗号放置的位置正确。

  1. 校对括号和方括号的匹配

如果JSON数据是包含对象或数组的嵌套结构,请确保括号和方括号的匹配是正确的。缺少或多余的括号或方括号可能会导致JSON解析错误。

  1. 使用try-except捕获异常

在解析JSON数据时,可以使用try-except语句来捕获JSONDecodeError异常,并进行相应的处理操作。这样可以防止程序因错误的JSON数据而崩溃,并提供错误处理机制。代码如下:

import json

class Readjson:

    def read_json(self):
        try:
            with open('test.json', 'r', encoding='utf-8') as f:
                decode_data = json.load(f)
                print(decode_data)

        except json.JSONDecodeError as e:
            print("Json解码错误:", e)

if __name__ == '__main__':
    Readjson().read_json()

------------------------
输出结果如下:
Json解码错误: Expecting ',' delimiter: line 4 column 5 (char 41)

在上述示例中,如果JSON数据中缺少逗号,则会捕获JSONDecodeError异常,并打印错误消息。我们可以根据报错信息,修改我们的json文件,再次运行,即可成功解析。

总结

"json.decoder.JSONDecodeError: Expecting ','"错误表示JSON数据中存在逗号缺失或逗号放置位置不正确的问题。通过检查JSON数据格式、校对逗号位置、括号和方括号的匹配,并使用try-except捕获异常,可以帮助解决这个错误。

处理JSON数据时,请确保遵循JSON语法规则,并进行适当的错误处理和验证。如果遇到此错误,请仔细检查JSON数据,并尝试使用上述方法解决问题。如果问题仍然存在,请仔细阅读错误消息以获取更多关于错误位置的提示,并进行必要的修正。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!?

文章来源:https://blog.csdn.net/nhb687095/article/details/135425831
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。