当你爬着数据,程序突然报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)
相关推荐
databook3 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar4 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780515 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_5 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机11 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机12 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i13 小时前
drf初步梳理
python·django
每日AI新事件13 小时前
python的异步函数
python