使用pandas将excel转成json格式

1.Excel数据

请添加图片描述

2.我们想要的JSON格式

{
    "0": {
        "raw_data1": "Sam",
        "raw_data2": "Wong",
        "raw_data3": "Good",
        "layer": "12v1"
    },
    "1": {
        "raw_data1": "Lucy",
        "raw_data2": "Babe",
        "raw_data3": "Pho",
        "layer": "12v2"
    }
}

3.python实现

  • 用anaconda创建一个独立的python环境
(base)...$ conda create -n excel
  • 切换到excel环境下,默认是在base环境:
(base)...$ conda activate excel
(excel)...$
  • 安装pandas
(excel)...$ conda install pandas

安装好后,pandas会被放在excel的环境里,其他的环境不受影响。

  • 查看当前环境的依赖
(excel)...$ conda list

打开visual studio code,设置python环境

我们这里使用vs code来开发,设置python环境就是选择我们刚刚创建出来的环境,因为只有里面有我们想要用到的依赖,具体设置如下:

点击vs code如下位置,打开设置:
在这里插入图片描述

  • 在弹出来的选项中选择我们刚刚创建的环境就可以完成配置
    请添加图片描述

  • python 代码实现

import pandas as pd
# read excel
xls = pd.read_excel('~/Desktop/Book1.xlsx')
xls.to_json(path_or_buf='book.json', orient='index')

结果如下:
在这里插入图片描述

  • 上面的数据看起来没有那么好看,其实可以格式化一下,python代码实现:
# 导入pandas库
import pandas as pd
# 导入json库的两个工具loads将字符器转成json对象,dumps工具用于格式化
from json import loads,dumps
# 读取excel的数据
xls = pd.read_excel('~/Desktop/Book1.xlsx')
# 将excel数据转成json字符串
json_str = xls.to_json(orient='index')
# 将json字符器转成json对象
parsed = loads(json_str)
# 格式化json对象,所谓格式化就是有缩进换行等格式化的东西
format_data = dumps(parsed,indent=4)
# 将格式化后的数据写入book.json文件
with open('book.json','w') as f:
    f.write(format_data)

结果是这样的:
请添加图片描述

我们还可以对获得的数据做更多的处理,比如我想将0,1这两个key换成对应的12v1和12v2,那么代码可以这么来写:

import pandas as pd
from json import loads,dumps

xls = pd.read_excel('~/Desktop/Book1.xlsx')
json_str = xls.to_json(orient='index')
parsed = loads(json_str)
# 与上面的程序比,区别只在这里,在格式化前对数据进行修改
# 创建一个字典,相当于java中的Map
dict = {}
# 遍历数据,对数据进行修改,修改后的数据都放在dict里
for key in parsed:
    k = parsed[key]['layer']
    dict[k] = parsed[key]
# 对修改后的数据dict进行格式化
format_data = dumps(dict,indent=4)
# 将格式化后的数据写入文件
with open('book.json','w') as f:
    f.write(format_data)

结果如下:
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外汇天眼:大量的平庸操作无济于事,少数的杰出操作改变人生

回顾我们的人生,道路虽然漫长,经历虽然众多,但紧要处其实只有关键的几步。 在关键时刻处理得最好的人就会拥有最成功的事业; 回顾我们所交过的朋友,虽然数量像天上的繁星,但真正对自己的人生有重大影响的,不…

NUUO 网络摄像头命令执行漏洞

一、设备简介 NUUO NVR是中国台湾省NUUO公司旗下的一款网络视频记录器,该设备存在远程命令执行漏洞,攻击者可利用该漏洞执行任意命令,进而获取服务器的权限。 网络视频记录器的CPU为Marvell Kirkwood 88F6281,CPU架构为基于ARMv5…

LLM(大语言模型)——大模型简介

目录 概述 发展历程 大语言模型的概念 LLM的应用和影响 大模型的能力、特点 大模型的能力 涌现能力(energent abilities) 作为基座模型支持多元应用的能力 支持对话作为统一入口的能力 大模型的特点 常见大模型 闭源LLM(未公开源…

GADM 4.1 全球国家行政区划下载

扫描文末二维码,关注微信公众号:ThsPool 后台回复g004,领取最新 GADM 4.1 全球国家行政区划 GADM概述 GADM,全称 Database of Global Administrative Areas,是一个开放获取的全球行政区划数据库,包含各国、…

智慧城市与数字孪生:技术驱动下的城市治理与生活变革

一、引言 随着科技的飞速发展,智慧城市和数字孪生已经成为现代城市发展的重要趋势。它们通过运用先进的信息通信技术,提升了城市的治理效率和居民的生活品质。本文将探讨智慧城市与数字孪生如何共同推动城市治理与生活的变革,以及面临的挑战…

Webpack源码浅析

webpack启动方式 webpack有两种启动方式: 通过webpack-cli脚手架来启动,即可以在Terminal终端直接运行; webpack ./debug/index.js --config ./debug/webpack.config.js通过require(webpack)引入包的方式执行;其实第一种方式最终…

踩坑了,MySQL数据库生成大量奇怪的大文件

作者:田逸(formyz) 一大早就收到某个数据库服务器磁盘满的报警信息,其中数据盘使用率超过90%,如下图所示。 这是一台刚上线不久的MySQL从库服务器,数据盘的总容量是300G。先登录系统,查看主从同…

一般系统的请求认证授权思路【gateway网关+jwt+redis+请求头httpheader】

gateway:网关,我们都知道网关的作用就是对系统的所有请求,网关都会进行拦截,然后做一些操作(例如:设置每个请求的请求头httpHeader,身份认证等等)此时一般会使用到网关过滤器&#x…

感悟笔记——2024年2月5日

今日阅读了一篇挺有深度的文章,主要阐述进入职场后的大部分人,是怎么逐渐沦为螺丝钉的?即使起点巨高的优等生,也不可避免。文章指路: 「优等生思维」正在将你变成「螺丝钉」和「老黄牛」从小到大,我一直都是那个「别…

随记-Java项目处理SQL注入问题

现象:http://10.xx.xx.xx:xx/services/xxService 存在SQL注入情况 加固意见: 需要对网站所有参数中提交的数据进行过滤,禁止输入“"、"xor"、"or"、”--“、”#“、”select“、”and“等特殊字符;所有…

专业排版设计软件:QuarkXPress 2024 for mac中文激活版

QuarkXPress 2024 for Mac是一款功能强大、易于使用、高质量输出的专业排版软件。无论您是出版业的专家还是初学者,都可以通过QuarkXPress 2024轻松创建出令人惊叹的出版物。 软件下载:QuarkXPress 2024 for mac中文激活版下载 QuarkXPress 2023 for Mac…

游戏后端如何实现服务器之间的负载均衡?

在当今的游戏行业中,随着游戏用户数量的不断增加,如何实现服务器之间的负载均衡成为了一个亟待解决的问题。游戏后端作为游戏的重要组成部分,承载着游戏逻辑处理和数据存储等功能,因此游戏后端的负载均衡问题尤为重要。本文将详细…

FINN: 使用神经网络对网络流进行指纹识别

文章信息 论文题目:FINN: Fingerprinting Network Flows using Neural Networks 期刊(会议):Annual Computer Security Applications Conference 时间:2021 级别:CCF B 文章链接:https://dl.ac…

centos7的git使用方法

下载git yum install git git克隆 git clone https...(图片中复制的内容) git提交到远程仓库 git add filename git commit -m "提交日志" git push git首次使用要配置邮箱和用户名 查看提交日志 git log 查看当前提交状态 git status

JAVASE进阶:一文精通Stream流+函数式编程

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:JAVASE进阶:源码精读——HashMap源码详细解析 📚订阅专栏:JAVASE进阶 希望文章对你们有所帮助…

【第三十五节】idea项目的创建以及setting和Project Structure的设置

项目创建 Project Structure的设置 点击file ~ Project Structure 进入

RBAC权限控制实现方案

上一文章讲述了利用RBAC实现访问控制的思路(RBAC实现思路),本文主要详细讲解利用vuex实现RBAC权限控制。 一、准备工作 从后台获取到权限对照表,如下: 1、添加/编辑楼宇 park:building:add_edit 2、楼宇管理 pa…

3. ⼤语⾔模型深度学习背景知识

1. LLM⼤语⾔模型⼀般训练过程 #mermaid-svg-8kci1fjEPiVolPue {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8kci1fjEPiVolPue .error-icon{fill:#552222;}#mermaid-svg-8kci1fjEPiVolPue .error-text{fill:#5522…

管理类联考-复试-全流程演练-导航页

文章目录 整体第一步:学校导师两手抓——知己知彼是关键学校校训历史 导师你对导师的研究方向有什么认知。 第二步:面试问题提前背——押题助沟通自我介绍——出现概率:100%为什么选择这个专业?今后如何打算?你认为自己…

最小覆盖子串[困难]

优质博文:IT-BLOG-CN 一、题目 给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串"" 。 对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量…