大语言模型LLM的微调中 QA 转换的小工具 xlsx2json.py
在训练语言模型中,需要将文件整理成规范的文档,因为文档本身会有很多不规范的地方,为了训练的正确,将文档进行规范处理。代码的功能是读取一个 Excel 文件,将其数据转换为 JSON 格式,并将 JSON 数据写入到一个文本文件中,实现了从 Excel 数据到 JSON 数据的转换,方便在其他系统或应用中使用或传输数据。
最终要在模型里使用的还是json 格式,以input / output字典格式的输出为例
{
"input": xxx,
"output": xxx
},
逐条解释代码如下:
1. 导入必要的库
import pandas as pd
import os
import json
import pandas as pd
:导入pandas
库,并使用别名pd
。pandas
是一个用于数据处理和分析的强大库,提供了数据结构(如DataFrame
)和数据操作方法,方便处理表格型数据,如 Excel 文件中的数据。import os
:导入os
模块,用于处理文件路径相关的操作,如获取当前文件所在目录、拼接文件路径等。import json
:导入json
模块,用于处理 JSON 数据,包括将 Python 对象转换为 JSON 格式以及将 JSON 数据解析为 Python 对象。
2. 设置工作目录并指定数据集文件路径
work_dir = os.path.dirname(os.path.abspath(__file__))
tmp_data_file = os.path.join(work_dir, "output.xlsx")
work_dir = os.path.dirname(os.path.abspath(__file__))
:获取当前 Python 脚本文件所在的目录路径,并将其赋值给work_dir
变量。os.path.dirname
获取指定路径的目录部分,os.path.abspath
获取绝对路径,__file__
是 Python 内置变量,表示当前脚本文件的路径。tmp_data_file = os.path.join(work_dir, "output.xlsx")
:通过os.path.join
将工作目录和文件名output.xlsx
拼接成完整的 Excel 文件路径,这里假设output.xlsx
在与脚本相同的目录下。如果实际情况不同,需要根据实际情况修改路径。
3. 读取 Excel 文件
df = pd.read_excel(tmp_data_file)
使用pandas
的read_excel
函数读取指定路径(tmp_data_file
)的 Excel 文件,并将其数据加载到一个DataFrame
对象中。DataFrame
是pandas
库中用于处理二维表格数据的主要数据结构,类似于 Excel 中的工作表,可以方便地进行数据选择、过滤、分析等操作。
4. 将 DataFrame 转换为字典列表
data_list = df.to_dict('records')
调用DataFrame
对象的to_dict
方法,将DataFrame
中的每一行数据转换为一个字典,然后将这些字典组成一个列表。参数'records'
表示每行数据作为一个字典,字典的键是列名,值是对应列的值。这样得到的data_list
是一个包含多个字典的列表,每个字典代表 Excel 文件中的一行数据。
5. 将字典列表转换为 JSON 字符串
json_data = json.dumps(data_list, ensure_ascii=False, indent=4)
使用json
模块的dumps
函数将data_list
(字典列表)转换为 JSON 格式的字符串。ensure_ascii=False
参数确保非 ASCII 字符(如中文)能够正确显示,而不是以转义字符的形式出现。indent=4
参数使生成的 JSON 字符串具有缩进,格式更易读,方便查看和调试。
6. 将 JSON 数据写入文件
with open(os.path.join(work_dir, 'json_output.txt'), 'w') as f:f.write(json_data)
使用with open
语句以写入模式('w'
)打开指定路径(os.path.join(work_dir, 'json_output.txt')
)的文件。在with
语句块内,将 JSON 字符串(json_data
)写入到文件中。with
语句会自动管理文件的打开和关闭,确保在操作完成后正确关闭文件,避免资源泄漏。
excel to json
import pandas as pd
import os
import json# 设置工作目录
work_dir = os.path.dirname(os.path.abspath(__file__))
# 处理的数据集
tmp_data_file = os.path.join(work_dir, "output.xlsx")# 读取Excel文件
df = pd.read_excel(tmp_data_file)# 将DataFrame转换为字典列表
data_list = df.to_dict('records')# 使用json.dumps函数将字典列表转换为JSON字符串,设置ensure_ascii=False
json_data = json.dumps(data_list, ensure_ascii=False, indent=4)# 将JSON数据写入文件
with open(os.path.join(work_dir, 'json_output.txt'), 'w') as f:f.write(json_data)
以下是使用pandas
库将 JSON 数据转换为 Excel 文件的代码示例:
import pandas as pd
import json
import os# 设置工作目录
work_dir = os.path.dirname(os.path.abspath(__file__))# JSON文件路径
json_file_path = os.path.join(work_dir, 'json_data.json')# 读取JSON文件
with open(json_file_path, 'r') as f:json_data = json.load(f)# 将JSON数据转换为DataFrame
df = pd.DataFrame(json_data)# Excel文件输出路径
excel_file_path = os.path.join(work_dir, 'output.xlsx')# 将DataFrame写入Excel文件
df.to_excel(excel_file_path, index=False)
- 首先设置工作目录,获取当前脚本所在的目录路径。
- 然后指定 JSON 文件的路径,通过
open
函数以只读模式打开 JSON 文件,并使用json.load
函数将 JSON 数据加载为 Python 对象(通常是字典或列表)。 - 接着使用
pandas
的DataFrame
构造函数将 JSON 数据转换为DataFrame
,这是pandas
中用于处理二维表格数据的主要数据结构。 - 再指定输出 Excel 文件的路径。
- 最后使用
DataFrame
的to_excel
方法将数据写入 Excel 文件,index=False
参数表示不将行索引写入 Excel 文件。
sample json_output.txt
[
{
"input": "目前什么事项会有系统邮件或者企信消息通知?",
"output": "[此处未明确提及具体通知事项,需查看文档中的图片,假设图片显示包含合同审批通知、付款通知等]合同审批进度、付款状态等事项会有系统邮件或企信消息通知(具体需根据文档中图片所示内容确定)。"
},
{
"input": "元年商旅订票时身份信息有误,如何修改?",
"output": "行程选择界面,点击出行人“>”按钮编辑证件信息,外籍注意检查护照信息,避免证件信息有误影响乘机。"
},
{
"input": "差旅费哪些发票需要员工线下打印?",
"output": "机票中的电子客运行程单、酒店住宿专票、火车票,线上订票月结统付统一打印发票;使用护照等非身份证订票的火车票、火车退改签票据,须员工线下打印后交回;滴滴用车、餐费、洗衣费等,须员工垫付后开票。"
},
{
"input": "差旅酒店住宿不通过线上预订,如何在差旅事前申请中预估费用?",
"output": "按标准添加行程规划,如选择目的地、入住离店日期、房间数、住宿标准等,系统会自动计算预估费用上限。"
},
{
"input": "跨店同事是否可以合住?",
"output": "为节约费用,可以合住,请线下预定酒店,报销时事由特殊报备。另外,同店员工也是可以合住的,请通过元年预定酒店即可。"
},
{
"input": "老系统已审批完成的差旅事前申请在哪提报销?",
"output": "商旅模块—行程方案—迁移前差旅费报销单。"
},
{
"input": "迁移前差旅费报销单据,如何添加未在事前申请中预估的费用?",
"output": "在预算归属中点击操作下的“⊕”按钮,新增行项目添加费用。老系统事前申请的所有行项目、未在事前申请中预估报销新增的行项目均在同一费用明细行里添加。"
},
相关文章:
大语言模型LLM的微调中 QA 转换的小工具 xlsx2json.py
在训练语言模型中,需要将文件整理成规范的文档,因为文档本身会有很多不规范的地方,为了训练的正确,将文档进行规范处理。代码的功能是读取一个 Excel 文件,将其数据转换为 JSON 格式,并将 JSON 数据写入到一…...

CFD 在生物反应器放大过程中的作用
工艺工程师最常想到的一个问题是“如何将台式反应器扩大到工业规模的反应器?”。这个问题的答案并不简单,也不容易得到。例如,人们误以为工业规模的反应器的性能与台式反应器相同。因此,扩大规模的过程并不是一件容易的事。必须对…...
Axios与FastAPI结合:构建并请求用户增删改查接口
在现代Web开发中,FastAPI以其高性能和简洁的代码结构成为了构建RESTful API的热门选择。而Axios则因其基于Promise的HTTP客户端特性,成为了前端与后端交互的理想工具。本文将介绍FastAPI和Axios的结合使用,通过一个用户增删改查(C…...

美畅物联丨如何通过ffmpeg排查视频问题
在我们日常使用畅联AIoT开放云平台的过程中,摄像机视频无法播放是较为常见的故障。尤其是当碰到摄像机视频不能正常播放的状况时,哪怕重启摄像机,也仍然无法使其恢复正常的工作状态,这着实让人感到头疼。这个时候,可以…...

基于OpenCV视觉库让机械手根据视觉判断物体有无和分类抓取的例程
项目实例,在一个无人封闭的隔绝场景中,根据视觉判断物件的有无,通过机械手 进行物件分类提取,并且返回状态结果; 实际的场景是有一个类似采血的固件支架盘,上面很多采血管,采血管帽颜色可能不同…...

QChart数据可视化
目录 一、QChart基本介绍 1.1 QChart基本概念与用途 1.2 主要类的介绍 1.2.1 QChartView类 1.2.2 QChart类 1.2.3QAbstractSeries类 1.2.4 QAbstractAxis类 1.2.5 QLegendMarker 二、与图表交互 1. 动态绘制数据 2. 深入数据 3. 缩放和滚动 4. 鼠标悬停 三、主题 …...
转换的艺术:如何在JavaScript中序列化Set为Array、Object及逆向操作
先认识一下Set 概念:存储唯一值的集合,元素只能是值,没有键与之对应。Set中的每个值都是唯一的。 特性: 值的集合,值可以是任何类型。 值的唯一性,每个值只能出现一次。 保持了插入顺序。 不支持通过索引来…...
万能门店小程序管理系统存在前台任意文件上传漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
详解Rust泛型用法
文章目录 基础语法泛型与结构体泛型约束泛型与生命周期泛型与枚举泛型和Vec静态泛型(const 泛型)类型别名默认类型参数Sized Trait与泛型常量函数与泛型泛型的性能 Rust是一种系统编程语言,它拥有强大的泛型支持,泛型是Rust中用于实现代码复用和类型安全…...

移远通信携手紫光展锐,以“5G+算力”共绘万物智联新蓝图
11月26日,2024紫光展锐全球合作伙伴大会在上海举办。作为紫光展锐重要的合作伙伴,移远通信应邀参会。 在下午的物联网生态论坛上,移远通信产品总监胡勇华作题为“5G与算力双擎驱动 引领智联新未来”的演讲,深度剖析了产业发展的趋…...

Mybatis:Mybatis快速入门
Mybatis的官方文档是真的非常好!非常好! 点一下我呗:Mybatis官方文档 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可…...
微信小程序用户登录页面制作教程
微信小程序用户登录页面制作教程 前言 在微信小程序的开发过程中,用户登录是一个至关重要的功能。通过用户登录,我们可以为用户提供个性化的体验,保护用户数据,并实现更复杂的业务逻辑。本文将为您详细讲解如何制作一个用户登录页面,包括设计思路、代码示例以及实现细节…...

python+django自动化平台(一键执行sql) 前端vue-element展示
一、开发环境搭建和配置 pip install mysql-connector-pythonpip install PyMySQL二、django模块目录 dbOperations ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-313.pyc │ ├── admin.cpython-313.pyc │ ├── apps.cpython-313.pyc │ …...

JavaScript学习总结
前言 JavaScript的学习花的时间比较长,如何进行正确的学习?今天进行总结与整理。 首先,明确JavaScript是什么?它的结构框架是什么,有哪些操作与组成部分。 其次,通过案例实践,清楚达到什么效果…...
Python 3 教程第22篇(数据结构)
Python3 数据结构 本章节我们主要结合前面所学的知识点来介绍Python数据结构。 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 以下是 Python 中列表的方…...

AI时代的软件工程:迎接LLM-DevOps的新纪元
在科技日新月异的今天,GPT的问世无疑为各行各业带来了一场深刻的变革,而软件工程领域更是首当其冲,正式迈入了软件工程3.0的新纪元。2024年,作为软件工程3.0的元年,伴随着软件工程3.0宣言的震撼发布,一个全…...
linux安全管理-系统环境安全
1 历史命令设置 1、检查内容 检查操作系统的历史命令设置。 2、配置要求 建议操作系统的历史命令设置。 3、配置方法 编辑/etc/profile 文件,配置保留历史命令的条数 HISTSIZE 和保留历史命令的记录文件大小 HISTFILESIZE,这两个都设置为 5。 配置方法如…...

MindAgent部署(进行中.....)
第一步:pip install -r requirements.txt 问题:如下:就是我的服务器,无法访问github Preparing metadata (setup.py) ... errorerror: subprocess-exited-with-error python setup.py egg_info did not run successfully.│ exi…...

【JavaEE初阶 — 网络编程】TCP流套接字编程
TCP流套接字编程 1. TCP & UDP 的区别 TCP 的核心特点是面向字节流,读写数据的基本单位是字节 byte 2 API介绍 2.1 ServerSocket 定义 ServerSocket 是创建 TCP 服务端 Socket 的API。 构造方法 方法签名 方法说明 ServerS…...
《气候变化研究进展》
《气候变化研究进展》设有气候系统变化、气候变化影响、气候变化适应、温室气体排放、对策论坛、简讯等栏目,其内容包括:国内外气候变化研究的最新成果与进展,以及与气候变化有关的交叉学科,如地球科学、生态与环境科学、人文与社…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...