当你爬着数据,程序突然报JSON格式化异常...(论如何修复异常的JSON)

引文

日常数据采集容易遇到异常的JSON数据,如:

括号不闭合{"profile": {"name": "xx", "age": 20}

没有引号{name: python, age: 20, salary: "python, }

反斜杠异常{"name": "python", "age": 20, "salary: "\"python\\""}

等等等等,之前基本都是使用正则匹配的方式提取关键文本,但是过于耗费时间了。

JSON-Repair

JSON-Repair是一个用于修复损坏或无效的JSON数据的库。它可以帮助你解决由于格式错误、缺失标记或其他问题导致的JSON数据无法解析的问题。

  1. 安装json-repair库:

    使用以下命令在你的Python环境中安装json-repair库:

    复制代码
    pip install json-repair
  2. 导入json-repair库:

    python 复制代码
    import json_repair
  3. 接口使用:

    json_repair提供了loads接口来加载异常数据

    python 复制代码
     invalid_json = '[{"name": "John", "age": 25}, {"name": "Mike", "age": 30]'
     repaired_json = json_repair.loads(invalid_json)
  4. 错误处理:

    如果JSON数据无法修复,repair函数将引发一个json_repair.JsonRepairError异常。你可以使用try-except语句来处理该异常并执行相应的操作。下面是一个示例代码:

    python 复制代码
    json_data = '{"name": "John", "age: 30, "city": "New York"}'
    try:
        repaired_json = json_repair.loads(json_data)
        print(repaired_json)
    except json_repair.JsonRepairError as e:
        print(f"JSON repair failed: {e}")
  5. 进一步的修复选项:

    json-repair库还提供了其他修复选项,例如指定修复级别、指定修复策略等。你可以在json_repair的文档中查找更多细节,并根据你的需求进行相应的配置。

使用案例:

  1. 解析无效的JSON数据:
python 复制代码
import json_repair

invalid_json = '[{"name": "John", "age": 25}, {"name": "Mike", "age": 30]'
parsed_data= json_repair.loads(invalid_json)
print(parsed_data)
  1. 修复缺失的JSON标记:
python 复制代码
import json_repair

missing_token_json = '{"name": "John", "age": 25, "city": "New York"}'
parsed_data= json_repair.loads(missing_token_json)
print(parsed_data)
  1. 修复格式错误的JSON数据:
python 复制代码
import json_repair

malformed_json = '{name: "John", age: 25, city: "New York"}'
parsed_data= json_repair.loads(malformed_json)
print(parsed_data)
相关推荐
CodeCraft Studio28 分钟前
CAD文件处理控件Aspose.CAD教程:使用 Python 将绘图转换为 Photoshop
python·photoshop·cad·aspose·aspose.cad
Python×CATIA工业智造2 小时前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
onceco3 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
天水幼麟3 小时前
动手学深度学习-学习笔记(总)
笔记·深度学习·学习
狐凄4 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
悦悦子a啊5 小时前
Python之--基本知识
开发语言·前端·python
天水幼麟6 小时前
动手学深度学习-学习笔记【二】(基础知识)
笔记·深度学习·学习
沧海一笑-dj6 小时前
【51单片机】51单片机学习笔记-课程简介
笔记·学习·51单片机·江科大·江科大学习笔记·江科大单片机·江科大51单片机
笑稀了的野生俊6 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
Naiva6 小时前
【小技巧】Python+PyCharm IDE 配置解释器出错,环境配置不完整或不兼容。(小智AI、MCP、聚合数据、实时新闻查询、NBA赛事查询)
ide·python·pycharm