【Python 必会技巧】使用 Python 追加写入 json 文件或更改 json 文件中的值

追加写入 json 文件

有一个 test.json 文件,包含内容如下:

{"key_1": "value_1"
}

现需要追加写入 json 文件,向其中增加值,使其包含内容如下:

{"key_1": "value_1","key_2": "value_2"
}

Python 代码实现:

import jsonnew_data = {"key_2": "value_2"}with open("test.json", "r", encoding="utf-8") as f:old_data = json.load(f)old_data.update(new_data)
with open("test.json", "w", encoding="utf-8") as f:json.dump(old_data, f)

如果 test.json 文件里面的初始内容为空,则需要在调用 json.load() 之前做一个判断,如果内容为空,则需要先构建一个字典,否则会报错:json.decoder.JSONDecodeError

import jsonnew_data = {"key_2": "value_2"}with open("test.json", "r", encoding="utf-8") as f:file = f.read()if len(file) > 0:old_data = json.load(f)else:old_data = {}old_data.update(new_data)
with open("test.json", "w", encoding="utf-8") as f:json.dump(old_data, f)

更改 json 文件中的值

有一个 test.json 文件,包含内容如下:

{"key_1": "value_1","key_2": "value_2"
}

现需要更改 key_2 的值为 value_3,更改后 test.json 文件的内容如下:

{"key_1": "value_1","key_2": "value_3"
}

Python 代码实现:

import jsonwith open("test.json", "r", encoding="utf-8") as f:old_data = json.load(f)old_data["key_2"] = "value_3"
with open("test.json", "w", encoding="utf-8") as f:json.dump(old_data, f)

用到的方法

  • json.load():将已编码的 JSON 字符串解码为 Python 对象;

  • json.dump():将 Python 对象编码成 JSON 字符串;

  • dict.update():Python 中把一个字典的键/值对更新到另一个字典里。

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

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

相关文章

【转】Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件

一:Postman中接口请求设置环境变量和全局变量 全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到。 全局变量的设置:官网参考https://learning.getpostman.com/docs/postman/environments_and_glob…

Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现

文章目录递归概念递归要素递归与迭代的区别示例一:阶乘示例二:斐波那契数列示例三:汉诺塔问题尾递归Python 中尾递归的解决方案递归概念 递归:程序调用自身的编程技巧称为递归( recursion)。用一种通俗的话…

【转】Postman系列五:Postman中电商网站cookie、token检验与参数传递实战

一:Postman中电商网站cookie实战 Postman接口请求使用cookie两种方式: 1.直接在header(头域)中添加cookie,适用于已知请求cookie头域的情况 2.使用Postman的cookie管理机制,即可以手动添加,同时…

Python 数据结构之栈的实现

文章目录栈的概念栈的特点栈的操作Python 实现栈栈的简单应用:括号匹配问题栈的简单应用:倒序输出一组元素栈的概念 栈(stack)又名堆栈,栈是一种线性数据结构,用先进后出或者是后进先出的方式存储数据&…

Scala学习

Scala学习(1.在菜鸟驿站简单学习) 由于学过java等语言,Scala简单的把语法多敲多练习就可以 新语言开始学习主要是语法的熟悉阶段,菜鸟教程里的内容全部完成一遍 object HelloWorld {def main(args: Array[String]): Unit {pri…

CSDN 2020 博客之星实时数据排名(Python 爬虫 + PyEcharts)

CSDN 2020 博客之星实时数据排名:csdn.itrhx.com CSDN 一年一度的博客之星评选开始了,官网地址:https://bss.csdn.net/m/topic/blog_star2020 ,由于官网是按照随机编号排序的,没有按照票数多少排序,为了方便…

Scala进阶-函数练习

1) map()函数 可以对整个集合进行操作,比如 创建一个Seq列表,然后用map对集合*2 val salaries Seq(2,3,4,5)val newsalaries salaries.map(_*2)2) flatMap函数 faltMap函数是map一种扩展,faltMap中传入一个函数&a…

【转】注册Azure AD 应用程序

作者:陈希章 发表于2017年3月22日 在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是,开发人员需要访问Microsoft Graph的…

Python + GitHub Actions 实现 CSDN 自动签到与抽奖(非 selenium 版本)

文章目录【1x00】技术栈【2x00】代码实现签到与抽奖【3x00】签到结果通知【03x01】Server 酱【03x02】企业微信【03x03】钉钉【4x00】自动签到【5x00】完整代码【6x00】如何使用【06x01】方法一:直接 Fork 代码(推荐)【06x01】方法二&#xf…

Spark安装配置

Scala基础语法学习的差不多了,先把spark安装上 首先官网下载解压安装后 进入到conf目录下修改文件名 修改spark-env.sh(配置jdk路径) export JAVA_HOME/usr/local/java/jdk1.8.0_221修改slaves(添加子节点名) chun…

【转】注册Azure AD 2.0 应用程序

作者:陈希章 发表于 2017年3月22日 上一篇 介绍了Microsoft Graph应用程序的一些概念,以及目前还比较普遍的Azure AD 1.0应用程序的注册方式。但正如我多次提到的那样,虽然目前功能还在不断完善,但Azure AD 2.0会逐渐成为主流&…

Python 采集 Facebook 评论插件、留言外挂程序

实现时间:2021-05-30实现难度:★★★☆☆☆实现目标:采集 Facebook 评论插件、留言外挂程序的所有评论。完整代码:https://github.com/TRHX/Python3-Spider-Practice/tree/master/CommentPlugin/facebook-comments其他爬虫实战代码…

写第一个spark程序(wordcount)

首先启动集群与spark 其次把spark目录下的README.md上传到hdfs 进入spark下的bin目录,运行spark-shell ./spark-shell运行 val textFile sc.textFile("hdfs://chun1:9000/spark/README.md")val wordCounts textFile.flatMap(line>line.split("…

【中国版Office 365 应用程序注册】

中国版Office 365是由世纪互联进行运营的一个云服务,单纯从技术角度来看的话,它基本保持了与国际版的同步。但是由于两个版本本质上是完全独立的,其中最关键的就是账号系统是分开的,所以从使用角度来看,不管是直接用户…

Python 中如何解决 asyncio 文件描述符最大数量限制问题

文章目录问题复现问题分析事件循环 EventLoopI/O 多路复用select 的缺点解决方法1.更换事件循环选择器2.限制并发量3.修改最大文件描述符限制WindowsLinux总结WindowsLinux问题复现 Windows 平台下,Python 版本 3.5,使用异步框架 asyncio,有…

Spark的Transformations算子(理解+实例)

把每个Transformations算子都敲着练习几遍会理解的更深刻 Transformations算子之后要写action算子才会进行计算。 1. map(func) 描述:返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成 def main(args: Array[String]): Unit {val conf …

【转】掀起Azure AD的盖头来——深入理解Microsoft Graph应用程序和服务权限声明

引子 这是一篇计划外的文章。我们都知道要进行Microsoft Graph的开发的话,需要进行应用程序注册。这个在此前我已经有专门的文章写过了。但这里存在一个小的问题:国内版的Office 365在申请好之后,并没有像国际版那样,有一个对应的…

Python 异步库 asyncio、aiohttp

asyncio 版本支持 asyncio 模块在 Python3.4 时发布。async 和 await 关键字最早在 Python3.5 中引入。Python3.3 之前不支持。 关键概念 event_loop 事件循环:程序开启一个无限的循环,程序员会把一些函数(协程)注册到事件循环…

Spark-自定义累加器-进行字符串拼接(代码及详细实现步骤)

看longAccumulator()方法源码里是val acc new LongAccumulator然后用register(acc)在Spark中注册了累加器,进入ctrl鼠标左键进入LongAccumulator,可以看到继承了AccumulatorV2[jl.Long, jl.Long],根据LongAccumulator来实现自定义累加器 实现类 //1.继…