实测 · JSON 排错
JSON 报错怎么修:4 个真实错误和修复前后
接口返回一坨、格式化就报错?下面是 Python json 解析器的真实错误信息:先看行列,再看前一个字符,通常 30 秒能定位。
样本说明:错误信息由 Python 3 的 json 解析器实际输出;不同语言/库的文案不同,但原因一致。示例不含真实接口数据。
| 错误 | 真实报错 | 原因 | 修复 |
|---|---|---|---|
| 尾逗号 | Expecting property name enclosed in double quotes: line 1 column 8 (char 7) | 最后一个字段后多了逗号 | 删掉 , |
| 单引号 | Expecting property name enclosed in double quotes: line 1 column 2 (char 1) | JSON 只认双引号 | 改成 "a" |
| key 没引号 | Expecting property name enclosed in double quotes: line 1 column 2 | a 不是合法 key | 改成 "a" |
| 尾随文本 | Extra data: line 1 column 9 (char 8) | JSON 结束后还有内容 | 删掉 trailing |
修复前后
尾逗号
// 错
{"a": 1,}
// 对
{"a": 1}单引号
// 错
{'a': 1}
// 对
{"a": 1}key 没引号
// 错
{a: 1}
// 对
{"a": 1}尾随文本
// 错
{"a": 1} trailing
// 对
{"a": 1}30 秒定位顺序
1. 看行列
先跳到报错行/列,不要从头逐字读。
2. 看前一个字符
尾逗号、缺引号、缺括号,错误位置通常在前一个字符附近。
3. 格式化再看
用 JSON 格式化/校验工具,先修语法,再管字段类型。
4. 修完再验证
重新解析通过,再检查业务字段/类型是否符合接口。
不要这样做
- 用
eval把字符串当 JSON 执行:安全风险。 - 全局替换单引号为双引号:可能改坏字符串内容。
- 用正则删逗号:可能删掉字符串里的逗号。
- 只修语法,不看字段类型/空值。
用哪个工具
常见问题
报错列数从 0 还是 1 开始?
Python 的 json 报错列从 1 开始;不同库可能不同,以报错文案为准。
JSON 能写注释吗?
标准 JSON 不支持注释;需要注释用 JSON5/YAML,或把说明放外部。
格式化后字段顺序会变吗?
可能变;JSON 对象本身无序,不要依赖字段顺序,依赖 key。
示例日期:2026-10-29 · 错误信息来自 Python json 解析器;示例不含真实接口数据。