常见错误 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 默认编码可能导致中文乱码。