Python 解析“脏乱差”JSON?这几种实战技巧让你轻松应对不规则数据
- Python 解析“脏乱差”JSON?这几种实战技巧让你轻松应对不规则数据
- 一、场景1:轻微格式错误(单引号、尾逗号等)
- 典型数据:
- ✅ 解法:使用 ast.literal_eval(仅限 Python 字面量)
- 二、场景2:含注释、尾逗号、键无引号(类 JS 对象)
- 典型数据:
- ✅ 解法:使用 json5 库(推荐!)
- 三、场景3:字符串中嵌套未转义的 JSON 片段
- 典型数据:
- ✅ 解法:正则 + 递归解析
- 四、场景4:完全非结构化,但有规律可循
- 比如日志文件中的混合内容:
- ✅ 解法:先用正则提取疑似 JSON 片段,再用容错解析器
- 五、终极武器:自定义解析器 or LLM 辅助(慎用)
- 最佳实践建议
- 结语
Python 解析“脏乱差”JSON?这几种实战技巧让你轻松应对不规则数据
在真实世界的数据处理中,我们很少遇到教科书式的标准 JSON。更多时候,面对的是:
单引号代替双引号
末尾多出逗号
键名未加引号(如 {name: “Alice”})
混合了注释(// 这是注释)
嵌套结构缺失或类型错乱(字符串里藏了 JSON 片段)
甚至根本不是合法 JSON,而是 JavaScript 对象字面量(JS Object Literal)
这类“不规则 JSON”无法被 Python 内置的 json.loads() 直接解析,强行使用会抛出 JSONDecodeError。但别急——本文将为你提供一套从温和修复到强力解析的完整工具箱,用 Python 轻松驯服这些“野性”数据。
一、场景1:轻微格式错误(单引号、尾逗号等)
典型数据:
{