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

发布时间 2023-09-07 15:08:24作者: 霍格沃兹测试开发学社

在这里插入图片描述

在处理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数据,并尝试使用上述方法解决问题。如果问题仍然存在,请仔细阅读错误消息以获取更多关于错误位置的提示,并进行必要的修正。

获取更多技术资料,请点击!