Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【PY】根据 Excel 中的指示修改 JSON 数据

【PY】根据 Excel 中的指示修改 JSON 数据

作者头像
sidiot
发布于 2023-08-31 06:06:14
发布于 2023-08-31 06:06:14
26500
代码可运行
举报
文章被收录于专栏:技术大杂烩技术大杂烩
运行总次数:0
代码可运行

前言

继上一次友友问了如何处理 Excel 中的数据之后,这次他又遇到了新问题,让我们一起来看看;

根据 Excel 中的指示,把旧的 json 中的内容改成新的 json 中的内容,那接下来且看博主娓娓道来;

如果对处理 Excel 中的数据感兴趣的小伙伴,可以看看之前的文章:【PY】pandas 处理 Excel 中错别字修正

读入 Excel

因为要对 Excel 中的数据进行读取,首先想到的就是 pandas 的包,那接下来我们将用到这几个来自 pandas 中的函数以及属性:

  • read_excel():读入 Excel 文件;
  • columns:查看数据表中的列名称;
  • values:查看数据表中的数值;

1、首先,导入 pandas 的包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd

2、读入相关 Excel 的数据,观察一下大致情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = pd.read_excel("1.xlsx")
data

3、然后看一下列标题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data.columns
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Index(['context', 'role_id', 'resource'], dtype='object')

4、再看看单行的数据值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data.loc[0].values

按照友友的说法,需要根据 role_id__,将新 json 中的内容替换到旧 json 中去;

到这里,读入 Excel 就完工了,我们接下来根据 role_id 处理一下 JSON 中的数据就行了;

处理 JSON

要处理 JSON 的话,想必要将 JSON 的数据导入,在处理完成之后,还要重新导出,因此,这里将用到 json 包,以及其中的两个函数:

  • dumps():将 Python 对象编码成 JSON 字符串;
  • loads():将已编码的 JSON 字符串解码为 Python 对象;

两个函数的实例可以参考菜鸟教程,下面将直接使用;

1、获取文件的路径;

这里的话使用到了 os.getcwd(),即获取到当前文件的位置,

因此,能够写出两个文件夹里的文件的路径了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
old_path = f"{os.getcwd()}/old/{data.loc[0].values[2]}"
new_path = f"{os.getcwd()}/new/{data.loc[0].values[2]}"

2、依次读入文件:

这里就使用 json.loads() 将 JSON 文件加载进来;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open(old_path, "r") as f:
    old_content = json.loads(f.read())
    print("old json:\n", old_content)

with open(new_path, "r") as f:
    new_content = json.loads(f.read())
    print("new json:\n", new_content)

在查取单行数据的时候,发现是 role_id 在12的位置有问题,看一下输出的结果,果真如此:

3、修改旧 JSON 文件的内容;

根据上述,我们只需要将新值覆盖到旧值上就行了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
old_content['对话过程'][data.loc[0].values[1]-1]['text'] = new_content['对话过程'][data.loc[0].values[1]-1]['text']

4、导出 JSON 文件;

这里用到的是 json.dumps()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open(old_path, 'w') as f:
    json.dumps(old_content, f, indent=4, ensure_ascii=False)

TIPS

上述已经完成了单次处理 JSON 数据的情况,如何把所有都修改完就是留给友友的思考了;

在 for 循环时需要注意一个问题,那就是需不需要判断是否为同一个 JSON 文件

如果不进行判断的话,那就一次遍历就要完成读写两个操作,会比较浪费资源,以及相对来说速度较慢;

如果需要进行判断的话,有一种方法就是需要两个指针来进行辅助,伪代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = pd.read_excel("1.xlsx")
start = data.loc[0].values[2]
flag = False
for index in data.index:
    cur = data.loc[index].values[2]

    if start != cur:
        with open(..., 'w') as f:
            json.dump(content, f, indent=4, ensure_ascii=False)
        flag = False
        start = cur

    if not flag:
        with open(..., 'r') as f:
            content = json.loads(f.read())
        flag = True

    ...

后记

以上就是 根据 Excel 中的指示修改 JSON 数据 的全部内容了,讲解了如何通过 pandas 包来读入 Excel,以及如何处理 JSON 数据,结合实际场景,具体问题具体分析,图文并茂,细致的讲解了操作过程以及其中需要注意的细节,希望大家有所收获!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【PY】pandas 处理 Excel 中错别字修正
今天有友友问起来,如何对 Excel 进行操作,对里面的内容进行错别字修正,那接下来由博主来为各位读者细细讲解一番;
sidiot
2023/08/31
2760
【PY】pandas 处理 Excel 中错别字修正
Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
“流”是一种抽象的概念,也是一种比喻,水流是从—端流向另一端的,而在python中的“水流"就是数据,数据会从一端"流向”另一端,根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据也会开启一个输出流,需要写入的数据源可以是文件、内存或者网络等。
EXI-小洲
2022/12/13
1.5K0
Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
Python操作Excel
常用的方式 常用的读写Excel的库: pandas openpyxl xlrd/xlwt/xlutils 使用它们都能够达到读写Excel的目的,但它们的侧重点又略有不同。 具体如下: pandas:数据处理最常用的分析库之一,可以读取各种各样格式的数据文件,一般输出dataframe格式,功能强大 openpyxl:主要针对xlsx格式的excel进行读取和编辑 xlrd库:从excel中读取数据,支持xls、xlsx xlwt库:对excel进行修改操作,不支持对xlsx格式的修改 xlutils库:
码客说
2022/01/17
1.4K0
【PY】重整 JSON 映射
大致意思就是说,将原先的 JSON 文件提取部分内容后进行重新映射,形成新的 JSON 文件;
sidiot
2023/08/30
1930
【PY】重整 JSON 映射
python︱处理与使用json格式的数据(json/UltraJSON/Demjson)、pickle模块、yaml模块
python种关于json有很多,simplejson,cjson,还有ujson(详细内容可见:http://blog.csdn.net/gzlaiyonghao/article/details/6567408). cjson模块只支持string/unicode的key JSON(JavaScript Object Notation)编码格式的数据。
悟乙己
2022/05/09
1K0
Python中JSON的基本使用
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它主要提供了四个方法: dumps、dump、loads、load。
py3study
2020/01/06
3.5K0
PythonforResearch | 1_文件操作
项目介绍:一直想写一份适合经济学等社科背景、学术科研向的 Python 教程。因为学经济学的多少会对 Stata 有所了解,有一些写代码命令的经历,这份教程应该:
PyStaData
2020/08/11
1.3K0
数据分析从零开始实战(二)
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
龙哥
2020/01/16
1.4K0
数据分析从零开始实战(二)
Python+requests+unittest+excel实现接口自动化测试框架
一、框架结构: 工程目录 代码:基于python2编写 二、Case文件设计 三、基础包 base 3.1 封装get/post请求(runmethon.py) import requests i
我被狗咬了
2019/09/23
2.3K0
Python+requests+unittest+excel实现接口自动化测试框架
利用python和百度地图API实现数据地图标注
地址:http://developer.baidu.com/map/jsdemo.htm#c1_19
IT派
2018/07/30
4.8K0
利用python和百度地图API实现数据地图标注
python Json与pickle数据序列化
在程序运行的过程中,所有的变量都是在内存中。一旦程序结束,变量所占用的内存就被操作系统全部回收。
py3study
2018/08/02
1.1K0
Python实现TXT、CSV、XLS等格式转换 and 图像显示(超详细教程)
处理点云数据的心得 使用xlwt对xls进行写操作 使用xlrd对xls进行读操作,可以直接读出文件的行数和列数 使用pandas也可以对csv、xls文件进行读写、两种格式转换,将两个文件进行合并在一起,将多个sheet列表整合在一个文件中 NOTE: csv类似于txt格式,针对csv格式,有专门的csv模块处理
全栈程序员站长
2021/04/07
2.2K0
Pandas处理csv表格
该文介绍了如何使用Pandas库对CSV文件进行数据处理和操作,包括读取CSV文件、处理缺失值、数据类型转换、数据筛选和排序、数据分组和统计等。同时,还介绍了如何使用Pandas进行数据预处理,包括数据标准化、数据编码、特征提取和特征选择等。最后,通过一个具体的示例,演示了如何使用Pandas进行数据分析和处理,并生成了对应的CSV文件。
MachineLP
2018/01/09
3.2K0
Pandas处理csv表格
python︱处理与使用json格式的数据(json/UltraJSON/Demjson)、pickle模块
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/77509447
悟乙己
2019/05/26
5.3K0
Python保存json_python保存json文件
json文件是一种常见的数据存储文件,比txt看着高级点,比xml看着人性化一点。
全栈程序员站长
2022/11/04
2.9K0
基于 hugging face 预训练模型的实体识别智能标注方案:生成doccano要求json格式
强烈推荐:数据标注平台doccano----简介、安装、使用、踩坑记录_汀、的博客-CSDN博客_doccano
汀丶人工智能
2022/12/21
7980
基于 hugging face 预训练模型的实体识别智能标注方案:生成doccano要求json格式
Python接口测试之数据驱动(二十)
在接口的自动化测试中,客户端发送请求给服务端,在客户端发送请求的时候,包含了请求地址,请求方法,以及请求参数等数据,那么在接口的自动化测试中如何来分离这些请求地址和请求参数了,最好的方式是以数据驱动的方式分离到excel中,这样在excel中直接维护,即使后期由于某些原因修改了请求参数,在excel中修改也是很快的。在下来的案例中,一个系统,请求登录成功后,服务端返回token给客户端,客户端再次请求的时候需要带着这个token。关于HTTP的请求流程,token,session这些的处理,在前面的文章中有很详细的介绍,这里就不再介绍,下面会直接引入代码实战这部分。
无涯WuYa
2018/10/25
8970
Python接口测试之数据驱动(二十)
Python 系列文章 —— json 详解
json-dump&dumps #!/usr/bin/python3 #字典转成json字符串 加上ensure_ascii=False以后,可以识别中文, indent=4是间隔4个空格显示 import json d={'小明':{'sex':'男','addr':'上海','age':26},'小红'
玩转编程
2022/01/13
3030
《写给系统管理员的Python脚本编程指南》笔记
从南图借的这本书,已经拖了好几个月没有读完了,加紧阅读和学习一下!前面3章的笔记记在了纸上,如果有可能拍照记录一下,后面还是电子记录下,纸质的不方便和保存和查阅,也不方便分享。书的配套代码,来自异步社区:https://box.lenovo.com/l/o5OgDR
用户1075469
2021/11/02
2K0
七、python学习笔记-序列化-json
# json """ 1、json是一个模块 2、json是序列化工具 3、json不支持函数数据类型 4、json导出导入时是字符串类型 """ # 引入模块 import json # dumps和dump """ 1、实现的功能是一样的 2、dumps需要手动写入文件 3、dump自动写入文件 """ # 使用dumps将字典转换成json格式保存到文件 # 创建一个字典 dic = {1: 'a', 2: 'b', 3: 'c'} # 创建文件对象 f = open('json_1', 'w'
堕落飞鸟
2022/01/14
2640
推荐阅读
相关推荐
【PY】pandas 处理 Excel 中错别字修正
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文