python中的json库常见使用总结

一、数据加载

1、json.loads()

接受一个包含JSON数据的字符串作为参数,从字符串中加载JSON数据。

import json
json_string = '{"name":"Alice","age":30,"is_student":false,"hobbies":["reading","painting"]}'
parsed_data = json.loads(json_string)
print(parsed_data["name"])
print(parsed_data["age"])
print(parsed_data["is_student"])
print(parsed_data["hobbies"])

2、json.load()

接受一个已经打开的文件对象作为参数,从文件中读取JSON数据。

import json
with open('your_file.json', 'r') as file:data = json.load(file)

3、异常处理

json.load:会抛出json.JSONDecodeError异常,如果文件不是有效的JSON格式。
json.loads:同样会抛出json.JSONDecodeError异常,如果提供的字符串不是有效的JSON格式。

总体而言,选择使用json.load还是 json.loads 取决于数据来源。如果数据在文件中,使用 json.load如果你的数据已经作为字符串存在,使用 json.loads更为方便。

二、数据保存

1、json.dumps()

将 Python 对象转换为 JSON 字符串,并返回该字符串。

import json
data = {"name":"Alice","age":30,"is_student":False,"hobbies":["reading","painting"]}
json_string = json.dumps(data)
print(json_string)

使用 json.dumps() 生成 JSON 字符串时,需要确保 Python 对象中的所有数据都可以被正确地序列化为 JSON 数据类型,否则会抛出 TypeError 异常。

2、json.dump()

将 Python 对象转换为 JSON 字符串,并将该字符串写入文件。

import json# 定义 Python 对象
data = {"name":"Alice","age":30,"is_student":False,"hobbies":["reading","painting"]}# 打开文件并将 Python 对象写入文件
with open('data.json', 'w') as f:json.dump(data, f)

参考

  • Python的json.loads() 方法与json.dumps()方法及使用小结
  • json.load和 json.loads
  • Python | 一文简单搞懂json.dump()与json.dumps()的区别

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

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

相关文章

计算机网络期末复习6(武夷学院版)略看

第6章 应用层 应用层是TCP/IP协议栈的最高层,直接面向用户,为各种网络应用提供服务。以下是一些典型的应用层协议的基本概念和主要使用的端口。 1. HTTP(HyperText Transfer Protocol) 基本概念:用于万维网上的数据…

Windows 组策略编辑器怎么打开,这两种方法你必须知道

组策略编辑器(Group Policy Editor, 简称 GPEdit.msc)是 Windows 操作系统中一个强大的工具,主要用于管理和配置系统设置、安全选项、用户权限等,尤其适用于企业环境中批量部署和管理策略。 尽管家庭版 Windows(如 Win…

Flink分区和窗口操作

分区(Partitioning)与分组(Grouping): 分区: 将数据流划分为多个子流,每个子流由一个或多个子任务处理。通过 keyBy 操作实现,根据键对数据进行分区。数据具体去往哪个分区,是通过…

解锁Memcached的Key长度极限:深入探索与实践

🔑 解锁Memcached的Key长度极限:深入探索与实践 Memcached是一种广泛使用的高性能分布式内存缓存系统,它通过减少数据库的读取次数来提高应用程序的性能。在Memcached中,每个缓存项都通过一个唯一的key来标识。然而,对…

秋招Java后端开发冲刺——并发篇1(线程与进程、多线程)

一、进程 1. 进程 进程是程序的一次动态执行过程,是操作系统资源分配的基本单位。 2. 进程和线程的区别 特性进程线程定义独立运行的程序实例,资源分配的基本单位进程中的一个执行单元,CPU调度的基本单位资源进程拥有独立的内存空间和资源线…

ubuntu安装miniconda、jupyer、ros2

miniconda: 类似于虚拟机 ,可以安装不同版本的python jupyer: python执行、调试命令工具 1.下载安装文件 wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh 2.安装minconda bash https://repo.anaconda.com/miniconda/Miniconda3-py…

傅雷家书思维导图的制作方法,分享制作技巧和软件!

在浩如烟海的书海中,《傅雷家书》以其独特的视角和深厚的情感,成为了无数读者心中的经典。那么,如何将这部饱含父爱的书信集转化为清晰易懂的思维导图呢?本文将为您详细解读傅雷家书思维导图的制作技巧,并推荐几款实用…

能自动铲屎的养猫救星?带你了解热门爆款智能猫砂盆的真实体验!

在谈论猫咪的日常生活时,我和朋友最经常聊的话题就是在各种各样的紧急情况下如何狼狈地赶回去给猫咪铲屎,毕竟猫砂盆里的屎但凡停留那么几小时,就要开始发臭了,一下班回去实在受不了那个味道,每次下班在家门口都想带个…

gemma2 vllm和ollama推理部署;openai接口调用、requests调用

参考: https://huggingface.co/google/gemma-2-9b https://ai.google.dev/gemma/docs/model_card_2?hl=zh-cn https://huggingface.co/blog/gemma2 发布了两个型号9B\27B 支持上下文长度有点短:4096 1、 ollama推理部署 升级ollama: curl -fsSL https://ollama.com/…

AVL许可证与版权保护

在数字化时代,知识产权保护成为企业发展的重要保障。AVL许可证与版权保护的关系密不可分,共同为企业筑起坚实的防线。本文将深入探讨AVL许可证在版权保护中的重要性、作用以及最佳实践,帮助企业更好地维护自身知识产权。 一、AVL许可证在版权…

高三才考试努力,请记住这些个学习方法,助你华丽逆袭

站在人生的十字路口,高三是整个人生中重要的转折点,这一年的学习成果直接影响我们未来的人生走向。站在我们求学生涯的高度上,高三也是特殊的一年,因为我们要用一整年的时间去复习旧知识。   如果你到了高三改意识到自己需要努力…

AMSA-UNet | 基于自注意力的多尺度 U-Net 提升图像去模糊性能

前言 传统的单尺度U-Net在去模糊过程中常常会导致空间信息的丢失,这影响了去模糊的准确性。此外,由于卷积方法在捕捉长距离依赖方面的局限性,恢复图像的质量下降。为了解决上述问题,提出了一种基于自注意力的非对称多尺度U-Net(AMSA-UNet)来提高去模糊方法在准确性和计算…

修改Springboot项目名称

修改Springboot项目名称 1. 整体描述2. 具体步骤2.1 修改module名称2.2 修改程序包名2.3 mybatis/mybatis-plus配置修改2.4 logback文件2.5 yml配置2.6 Application启动类2.7 其他 3. 总结 1. 整体描述 开发过程中,经常遇到新来个项目,需要一份初始代码…

【前端】HTML+CSS复习记录【5】

文章目录 前言一、padding、margin、border(边框边距)二、样式优先级三、var(使用 CSS 变量更改多个元素样式)四、media quary(媒体查询)系列文章目录 前言 长时间未使用HTML编程,前端知识感觉…

去中心化革命:探索区块链技术的前沿

随着信息技术的飞速发展,区块链技术作为一种新兴的去中心化解决方案,正逐渐改变着我们的经济、社会和技术格局。本文将从区块链的基本原理、当前的应用实例以及未来的发展趋势三个方面,深入探讨区块链技术在革命性变革中的角色和影响。 1. 区…

构建工程化:建立平台化工程体系

一、功能描述 工程化体系主要是解决能够统一进行打包的问题,故需要对整体进行描述 1.1、子项目描述 1.1.1、配置管理 对于每一个子项目而言,需要有专门的配置管理目录,目录的建议组建方式为conf/defalut和conf/local,其中defa…

TypeScript中,如何利用数组生成一个联合类型

本文由 ChatMoney团队出品 在开发中我们常常会遇到这样一个问题,代码如下: const arr ["a","b","c","d","e","f","g","h","i","j","k&quo…

利用区块链技术实现返利App的透明化追溯

利用区块链技术实现返利App的透明化追溯 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何利用区块链技术实现返利App的透明化追溯&#xff0c…

【信息学奥赛】CSP-J/S初赛06 信息编码(ASCLL码及汉字信息编码)

本专栏👉CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容,包含计算机基础、初赛常考的C程序和算法以及数据结构,并收集了近年真题以作参考。 如果你想参加信息学奥赛,但之前没有太多C基础,请点击👉专栏&#…

51单片机点亮第一个LED灯

欢迎入群共同学习交流 时间记录&#xff1a;2024/7/2 一、电路原理图 二、代码程序 1.项目代码结构 2.主程序代码 #include <reg51.h>sbit ledP1^0;void delay(int ms) {int i0;while(ms--){for(i0;i<110;i);} }int main() {while(1){led 1;delay(1000);led 0;d…