羲和数据集清洗器003

ops/2024/10/15 18:17:50/

项目说明
项目名称
羲和数据集清洗器003
项目描述
这是一个基于 Python 的图形用户界面 (GUI) 应用程序,用于检查和修复 .jsonl 文件中的数据格式错误。该工具可以自动修复常见的 JSON 格式错误,并将数据转换为规定的格式。它还提供日志记录功能,记录检查过程中发现的错误信息。
功能特点
选择输入文件:用户可以选择一个 .jsonl 文件进行检查。
选择输出文件:用户可以选择一个输出文件来保存修复后的有效数据(可选)。
检查文件:程序会读取输入文件的每一行,验证其是否符合预定义的 JSON 格式,并将结果记录到日志文件中。
修复 JSON 格式错误:自动修复常见的 JSON 格式错误,如引号、括号、多余的逗号等。
数据格式转换:将数据从其他格式(如 {“question”: “11111”, “answer”: “22222”})转换为规定的格式 {“question”: “11111”, “xihe_answers”: [“22222”], “ling_answers”: [“22222”]}。
日志记录:记录检查过程中的所有错误信息到日志文件中。
用户提示:通过弹窗通知用户检查结果。
技术栈
Python 3.x
Tkinter:用于创建图形用户界面
re:用于正则表达式匹配和替换
json:用于解析和生成 JSON 数据
目录结构
code

jsonl_checker/
│
├── main.py  # 主程序文件
├── README.md  # 项目说明文档
└── error_log.txt  # 默认的日志文件

使用说明
安装依赖:
本项目使用标准库中的模块,无需额外安装依赖。

运行程序:

打开终端或命令行工具。
导航到项目目录。
运行以下命令启动程序:
sh
python main.py
操作步骤:

选择输入文件:
点击“选择 JSONL 文件”按钮,选择要检查的 .jsonl 文件。
选择输出文件(可选):
点击“选择输出文件”按钮,选择一个输出文件来保存修复后的有效数据。
检查文件:
点击“检查文件”按钮,程序将开始检查文件。
查看结果:
检查完成后,程序会通过弹窗通知用户检查结果,并将日志信息保存到 error_log.txt 文件中。
代码详解
fix_json_line(line) 函数:

尝试直接解析 JSON。
如果解析失败,尝试修复常见的 JSON 格式错误,如引号、括号、多余的逗号等。
返回修复后的 JSON 对象,如果无法修复则返回 None。
convert_data_format(data) 函数:

将 {“question”: “11111”, “answer”: “22222”} 转换为 {“question”: “11111”, “xihe_answers”: [“22222”], “ling_answers”: [“22222”]}。
返回转换后的数据。
convert_and_check_jsonl_file(input_file, log_file, output_file=None) 函数:

读取输入文件的每一行。
使用 fix_json_line 函数修复 JSON 格式错误。
使用 convert_data_format 函数转换数据格式。
检查 JSON 对象是否符合要求,并记录错误信息到日志文件。
将有效的行保存到输出文件中。
select_file() 函数:

打开文件选择对话框,让用户选择一个 .jsonl 文件,并将路径显示在输入框中。
select_output_file() 函数:

打开文件保存对话框,让用户选择或创建一个输出文件,并将路径显示在输入框中。
run_check() 函数:

获取用户选择的输入文件和输出文件路径。
调用 convert_and_check_jsonl_file 函数进行文件检查。
如果没有选择输入文件,弹出警告信息。
示例用法
假设你有一个名为 data.jsonl 的文件,内容如下:

jsonl

{"question": "11111", "answer": "22222"}
{"question": "What is the capital of France?", "xihe_answers": ["Paris"], "ling_answers": ["Paris"]}
{"question": "What is 2 + 2?", "xihe_answers": ["4"], "ling_answers": [4]}  // 错误:ling_answers 应该是字符串列表
{"question": "What is the largest planet in our solar system?", "xihe_answers": ["Jupiter"], "ling_answers": ["Jupiter"]}
{"question": "What is the capital of France?", xihe_answers: ["Paris"

http://www.ppmy.cn/ops/126049.html

相关文章

EF Core 中避免 SQL 注入的三种写法

SQL 注入攻击可能会对我们的应用程序产生严重影响,导致敏感数据泄露、未经授权的访问和应用程序受损。EF Core 提供了三种内置机制来防止 SQL 注入攻击。 1、利用 LINQ 查询语法和参数化查询,这是比较推荐的做法。 await using var context new Postg…

生产及质量BI应用场景方案(可编辑37页PPT)

荐言分享:随着全球化的深入发展,制造业面临的竞争日益激烈。为了在市场中脱颖而出,企业需要不断提升自身的生产效率、降低成本,同时保证产品质量。现代消费者的需求日益多样化,对产品的个性化、定制化和品质要求越来越…

抖音小游戏画图位置移动

文章目录 画图移动图形位置 画图 const canvas tt.createCanvas(); const context canvas.getContext(2d);context.width 500; context.height 500;let isPressing false; // 是否按下 let startX 0; let startY 0;context.fillStyle "#f00"; context.fillR…

基于YOLOv11的车辆行人实时检测系统(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)

上百种【基于YOLOv8/v10/v11的目标检测系统】目录(pythonpyside6界面系统源码可训练的数据集也完成的训练模型)-CSDN博客 ............................................................................................ 摘要: 本文提出了…

golang接口详解

interface(接口) 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节 在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于之前章节中讲到的那…

软件测试工程师面试整理 —— 操作系统与网络基础!

在软件测试中,了解操作系统和网络基础知识对于有效地进行测试工作至关重要。无论是在配置测试环境、调试网络问题,还是在进行性能测试和安全测试时,这些知识都是不可或缺的。 1. 操作系统基础 操作系统(Operating System, OS&am…

【HTML格式PPT离线到本地浏览】

文章目录 概要实现细节小结 概要 最近在上课时总是出现网络不稳定导致的PPT无法浏览的情况出现,就想到下载到电脑上。但是PPT是一个HTML的网页,无法通过保存网页(右键另存为mhtml只能保存当前页)的形式全部下载下来,试…

实战篇:(四)Vue2 + Three.js 创建可交互的360度全景视图,可控制旋转、缩放完整代码

Vue2 Three.js 创建可交互的360度全景视图,可控制旋转、缩放 引言 在现代网页开发中,三维图形技术已经成为提升用户体验的重要工具。本文将展示如何使用 Three.js 创建一个简单的可交互360度全景视图。通过这一项目,你将能够学习到基本的场…