python划分数据集时出现KeyError: ‘instruction‘错误

今天在将json文件划分数据集时出现了KeyError: 'instruction'错误,由于数据量比较大,所以在浏览了部分数据后以为结构没有问题,这是一部分的数据结构

  {"instruction": "描述面向对象编程(OOP)的原则。","input": "OOP 原则包括封装、继承、多态和抽象,促进了有组织和可维护的代码。","output": "输出评价:你对面向对象编程的原则有很好的理解。在你的开发经验中,这些原则是如何指导你编写代码的?"},

因此百思不得其解,但是后来通过打印JSON 文件中的示例条目 发现存在少部分格式不同,这才导致KeyError: 'instruction'错误

Keys in example: dict_keys(['instruction', 'input', 'output'])
Keys in example: dict_keys(['instruction', 'input', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['question', 'answer', 'output'])
Keys in example: dict_keys(['instruction', 'input', 'output'])
Keys in example: dict_keys(['instruction', 'input', 'output'])

因此,我们需要在处理数据之前先检查每个示例的键结构,并根据不同的结构来处理数据。我们可以在读取数据时,对每个示例的键结构进行检查,然后选择性地提取所需的键。这样就可以确保代码不会在处理不同结构的数据时出现错误。 

这是处理好后的代码 

import json
from sklearn.model_selection import train_test_split# 读取 JSON 文件
with open('qiyeruangong.json', 'r', encoding='utf-8') as file:data = json.load(file)# 提取所需的键
X = []
y = []
for example in data:# 检查示例的键结构if 'instruction' in example and 'input' in example and 'output' in example:X.append(example['instruction'] + ' ' + example['input'])y.append(example['output'])elif 'question' in example and 'answer' in example and 'output' in example:X.append(example['question'])y.append(example['output'])else:print("Unsupported example format:", example)# 划分训练集、验证集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42) # 0.25 x 0.8 = 0.2# 可选:保存划分后的数据集
with open('train_data.json', 'w') as train_file:json.dump({'X_train': X_train, 'y_train': y_train}, train_file)with open('val_data.json', 'w') as val_file:json.dump({'X_val': X_val, 'y_val': y_val}, val_file)with open('test_data.json', 'w') as test_file:json.dump({'X_test': X_test, 'y_test': y_test}, test_file)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下的常用压缩格式及压缩命令

目录 linux下的常用压缩格式及压缩命令 一、tar打包工具 二、gzip压缩工具 三、bzip2压缩工具 四、其他格式的压缩和解压缩 在linux下常用的压缩格式有:.tar、.tar.bz2、.tar.gz 不同的压缩格式使用的打包工具及压缩命令也不同。以下简要介绍常用的压缩命令。…

逆向案例十九——某音乐搜索页面参数多文件webpack加密,采用全复制加补环境的做法。

网址:搜索 - QQ音乐-千万正版音乐海量无损曲库新歌热歌天天畅听的高品质音乐平台! 进行搜索找到数据包: 发现载荷有加密参数sign: 在下方搜索框搜索sign:,进入js加密文件 进入js文件找到加密位置: sign由i赋值,在前面…

题目 2694: 蓝桥杯2022年第十三届决赛真题-最大数字【暴力解法】

最大数字 原题链接 🥰提交结果 思路 对于每一位,我我们都要尽力到达 9 所以我们去遍历每一位, 如果是 9 直接跳过这一位 如果可以上调到 9 我们将这一位上调到 9 ,并且在a 中减去对应的次数 同样的,如果可以下调到 9,我…

学习笔记——C语言基本概念栈和队列——(14)

本次笔记是C语言的最后学习内容。 1、栈 特点:先进后出 堆栈又名栈( stack) , 它是一种运算受限的线性表。 限定仅在表尾进行插入和删除操作的线性表。 这一端被称为栈顶, 相对地, 把另一端称为栈底。 向…

如何通过OceanBase V4.2的复制表,提升数据库性能

引言: 复制表是OceanBase数据库中一种特殊的表,本文将介绍其基本定义与应用方法。复制表,能够在任意一个处于“健康”状态的副本上,获取到数据的最新变更。对于写入操作不频繁,但对读取操作的延迟和负载均衡有较高要求…

基础知识点全覆盖(1)

Python基础知识点 1.基本语句 1.注释 方便阅读和调试代码注释的方法有行注释和块注释 1.行注释 行注释以 **# **开头 # 这是单行注释2.块注释 块注释以多个 #、三单引号或三双引号(注意: 基于英文输入状态下的标点符号) # 类 # 似 # 于 # 多 # 行 # 效 # 果 这就是多行注释…

PolarDB for PostgreSQL 有意思吗? 有意思呀

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(…

510天,暴雪竞品迎来大考

北京时间4月10日,暴雪娱乐、微软游戏与网易正式宣布重新达成合作。两则数据值得关注: 一是上午暴雪与网易刚宣布合作,中午《魔兽世界》玩家预约就超过了20W。 截图时间为中午12:48 二是在上午10:24,《炉石传说》官方公众号发布回…

企企通入选2023年度中国高科技高成长企业、2023中小微企业数字化转型服务商TOP100榜单!

近期,2023年度中国高科技高成长企业系列榜单、2023中小微企业数字化转型服务商TOP100重磅发布,企企通凭借在数字化采购领域的产品能力和服务能力等综合实力,连续斩获多个奖项,得到主流权威媒体机构认可,印证了企企通的…

Github 2024-04-11 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-11统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目4Python项目3JavaScript项目1Cuda项目1Jupyter Notebook项目1非开发语言项目1Dify.AI: 开源的LLM应用程序开发平台 创建周期:29…

【惠海H4120 40V 1A 输出 同步降压芯片IC DCDC转换器 】

40V 1A 输出同步降压芯片IC DCDC转换器是一种电源管理芯片,用于将较高的输入电压转换为稳定的40V 1A输出电压。这种芯片通常用于需要高效、可靠和稳定电源的应用中,如工业设备、汽车电子、安防监控等领域。同步降压芯片IC DCDC转换器采用同步整流技术&am…

前端图片详解(最全面、最新)

前言 当我们在做前端性能优化的时候,总是会离不开图片,尤其在首次内容绘制(FCP)和最大内容绘制 (LCP)中,图片显得格外关键,而我发现关于图片格式的文章,一般不全,或者是偏旧。 所以…

内存地产风云录:malloc、free、calloc、realloc演绎动态内存世界的楼盘开发与交易大戏

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看,已成习惯 创作不易,多多支持! 在这个波澜壮阔的内存地产世界中,malloc、free、calloc和realloc四位主角,共同演绎着一场场精彩绝伦的楼盘开…

RS232,RS422,RS485介绍

目录 一.前言 二.示意图 三.RS-232 四.RS-422 五.RS485 一.前言 请你根据这个目录生成一段前言:一.前言 二.示意图 三.RS-232 四.RS-422 五.RS485 在本文中,我们将介绍RS-232、RS-422和RS-485这三种串行通信协议。这些协议在计算机和外部设备之间的数据传输中起着重要的…

Linux的网口名字的命名规则

在工作中,偶尔看到有些机器的网口名字是以ethX命令,有些则以enpXsX这种名字命名。网上的资料说的都不太明白,资料也无据可查,很难让人信服。于是决定自己查了下官方的资料和源码,把这些搞清楚。 官方文档:Predictable…

直播视频传输处理技术

流程 在视频直播场景中,从拍摄到手机用户接收的整个过程涉及多个技术环节: 视频采集: 视频源通常来自摄像机或智能手机摄像头,通过捕捉连续的画面生成原始视频信号。 编码压缩: 为了减少数据量以适应网络传输&#x…

【40分钟速成智能风控10】风控大数据体系2

目录 ​编辑 特征工程方法 统计量 离散化 时间周期趋势 交叉项 隐性特征 用户画像 特征工程方法 在模型圈内有这么一句俗话,“特征决定了模型的上限,而算法只是逼近这个上限”,由此可见特征工程在风控建模中的重要程度。特征工程的本…

最大连续1的个数 III

题目链接 最大连续1的个数 III 题目描述 注意点 nums[i] 不是 0 就是 10 < k < nums.length 解答思路 创建一个滑动窗口&#xff0c;保证窗口内翻转0的个数始终不大于k&#xff0c;不断移动窗口的右边界&#xff0c;有以下三种情况&#xff1a; 当右边界的值为1&…

模组硬件通用|ESD静电释放注意事项

当我们在进行接插件操作或者电路板调试时&#xff0c;有时会出现接口损坏或者电路板上的某个IC芯片失效的情况&#xff0c;原因可能仅仅是手触摸到了IC芯片&#xff0c;ESD(Electro-Static discharge 静电释放)导致了损坏。模组作为一个集成电路板&#xff0c;内部含有不同型号…

hertzbeat监控工具部署

目录 参考简介部署docker-compose.ymldocker安装使用portanier部署访问地址默认用户密码 配置SpringBoot程序配置基础信息新增阈值规则新增通知策略 参考 家庭私有云上 Docker 部署 hertzbeat&#xff0c;好用的监控告警系统 官网 简介 hertzbeat是一个拥有强大自定义监控能…