常见错误 JSONDecodeError

41.6 常见错误 JSONDecodeError

字符串不是合法 JSON 时 loads 抛 JSONDecodeError。

文件末尾多空行、单引号、尾逗号都会导致解析失败。

安全解析

# ========================================
# 示例:捕获 JSON 错误
# 说明:try/except JSONDecodeError
# ========================================
import json

def safe_loads(text):
    try:
        return json.loads(text)
    except json.JSONDecodeError as e:
        print('JSON 格式错误', e)
        return None

print(safe_loads('{"ok": true}'))
print(safe_loads('{ok: true}'))  # 非法

⚠️ 常见错误与正确对比

❌ 错误写法
json.loads(open('f.json').read()) 不指定编码
✅ 正确写法
open('f.json', encoding='utf-8')

📌 Windows 默认编码可能导致中文乱码。