热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

追加写入json文件有一个test.json文件,包含内容如下:{key_1:value_1}现需要追加写入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 中把一个字典的键/值对更新到另一个字典里。


推荐阅读
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本文详细介绍了Python中文件的基本操作,包括打开、读取、写入和关闭文件的方法,并通过实例展示了如何将Excel文件转换为CSV文件以及进一步转换为HTML文件。此外,还涉及了成绩等级替换的具体实现。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文介绍如何使用 Python 获取文件和图片的创建、修改及拍摄日期。通过多种方法,如 PIL 库的 _getexif() 函数和 os 模块的 getmtime() 和 stat() 方法,详细讲解了这些技术的应用场景和注意事项。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 在学习网页爬虫时,使用Selenium进行自动化操作。初次安装selenium模块后,第二天运行代码时遇到了ImportError:无法从'selenium'导入名称'webdriver'。本文将详细解释该问题的原因及解决方案。 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 本文介绍如何使用 Python 的 xlrd 库读取 Excel 文件,并将其数据处理后存储到数据库中。通过实际案例,详细讲解了文件路径、合并单元格处理等常见问题。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • 本文介绍了在Windows Server 2003环境下,使用XAMPP Lite 1.7.1和DotProject 2.1.3时遇到的日历和甘特图中文乱码问题的解决方案。通过修改相关文件和配置,可以有效解决这些问题。 ... [详细]
  • ThinkPHP框架中处理JS和CSS缓存问题的解决方案
    本文探讨了在ThinkPHP框架中,当启用调试模式(APP_DEBUG)时,删除public文件夹中的CSS和JS文件后页面仍然显示旧样式的问题,并提供了一种有效的解决方法。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • CAD .NET v12发布:提升GDI+可视化性能并支持AutoCAD® DWG 2018
    最新发布的CAD .NET v12是一款增强版的.NET库,专为处理DWG、DXF及其他CAD文件设计。此版本不仅显著提升了GDI+可视化的速度,还增加了对最新AutoCAD® DWG 2018格式的支持。 ... [详细]
author-avatar
手机用户2602934327
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有