33 JSON操作
目录
一、介绍
二、JSON的特点
三、JSON语法
1、json中的数据类型
四、JSON文件的定义
五、读取JSON文件
1、读取json文件的两种方式
(1)read、write
(2)json.load
2、使用json.load读取json文件的步骤
3、练习读取json文件
六、练习读取json文件
七、写入(了解)
1、作用
2、将数据写入json文件的步骤
3、练习将数据写入json文件
一、介绍
- 基于文本:json是文本文件,一般不包含图片、视频等内容
- 独立于语言:json不是某一种语言特有的,Python、Java、C++...等都能操作python文件
- 轻量级:相同的数据量,json文件占用的文件大小相对较小
- 数据交换格式:后端服务器和前端页面交换数据 使用的格式
- 其他常见的数据源文件格式:txt/excel/csv/xml
二、JSON的特点

三、JSON语法

1、json中的数据类型
- 对象{} ---> python字典
- 数组{} ---> python列表
- 字符串,必须使用双引号 ---> str
- 数字类型 ---> int、float
- bool类型(true false) ---> True False
- 空值null ---> None
四、JSON文件的定义
- 我叫小明,我今年18岁,性别男,学校空,爱好听歌、吃饭、打豆豆,我的居住地址为:国家中国、城市广州。

{"name": "小明","age": 18,"isMan": true,"school": null,"like": ["听歌","吃饭","打豆豆"],"adress": {"country": "China","city": "⼴州"}
} 五、读取JSON文件
1、读取json文件的两种方式
(1)read、write
- json文件的本质是文本文件,可以直接使用read和write进行操作
(2)json.load
- json文件比较特殊,比较像python中的字典和列表,按照read和write的操作,想要取到数据比较麻烦,所以一般用专门的方法读取json文件,可以直接得到python中的列表和字典
2、使用json.load读取json文件的步骤
- 步骤1:import json #导包
- 步骤2:json.load(文件对象) #得到的是列表或者字典(取决于json文件是数组还是对象)
3、练习读取json文件
{"name": "小明","age": 18,"isMan": true,"school": null,"like": ["听歌","吃饭","打豆豆"],"adress": {"country": "China","city": "⼴州"}
} import jsonwith open('info.json',encoding='utf-8') as f:buf = json.load(f)print(type(buf))print(buf) #info.json中是对象,所以得到的是字典# 先判断从json文件中读到的值是什么数据类型,再根据不同的方法处理# 姓名print(buf.get('name'))# 城市print(buf.get('adress').get('city'))#获取第二个爱好print(buf.get('like')[1])#学校print(buf.get('school'))'''
运行结果:
<class 'dict'>
{'name': '小明', 'age': 18, 'isMan': True, 'school': None, 'like': ['听歌', '吃饭', '打豆豆'], 'adress': {'country': 'China', 'city': '⼴州'}}
小明
⼴州
吃饭
None
''' 六、练习读取json文件
- 我叫小明,我今年18岁,性别男,爱好听歌、吃饭、打豆豆,我的居住地址为:国家中国、城市广州。
- 我叫小红,我今年17岁,性别女,爱好听歌、学习、购物,我的居住地址为:国家中国、城市北京。
- 获取每个人的姓名,年龄,性别,城市
[{"name": "小明","age": 18,"isMan": true,"hobby": ["听歌","吃饭","打豆豆"],"adress": {"country": "China","city": "广州"}},{"name": "小红","age": 17,"isMan": false,"hobby": ["听歌","学习","购物"],"adress": {"country": "China","city": "北京"}}
] import jsonwith open("info2.json", encoding='utf-8') as f:buf = json.load(f)print(type(buf)) #得到的是一个数组# 方式一print(f"姓名:{buf[0].get('name')},年龄:{buf[0].get('age')},性别:{buf[0].get('isMan')},城市:{buf[0].get('adress').get('city')}")print(f"姓名:{buf[1].get('name')},年龄:{buf[1].get('age')},性别:{buf[1].get('isMan')},城市:{buf[1].get('adress').get('city')}")# 方式二for data in buf:print(f"姓名:{data.get('name')},年龄:{data.get('age')},性别:{data.get('isMan')}"f"城市:{data.get('adress').get('city')}")#方式三:当isMan的值为true,打印男,当isMan的值为false时,打印女for data1 in buf:'''python中扁平化代码的写法(推荐): 条件为true执行的代码 if判断条件 else:条件为false执行的代码a='a' if 3 > 1 else 'b''''sex = "男" if data.get('isMan') else "女"print(f"姓名:{data1.get('name')},年龄:{data1.get('age')},性别:{sex}"f"城市:{data1.get('adress').get('city')}") 七、写入(了解)
1、作用
- 将Python中的列表或者字典 转换为 json文件
2、将数据写入json文件的步骤
- 步骤1:import json #导包
- 步骤2:json.dump(Python中数据, ⽂件对象)
3、练习将数据写入json文件
import jsoninfo = [{"name":"小王","age":18,"adrress":{"country":"中国","city":"广州"}},{"name":"小李","age":17,"adrress":{"country":"中国","city":"北京"}}]with open("info3.json",'w',encoding='utf-8') as f:# json.dump(info,f)# json.dump(info,f,ensure_ascii=False) #直接显示中文json.dump(info,f,ensure_ascii=False,indent=2) #格式化写入json文件的数据 相关文章:
33 JSON操作
目录 一、介绍 二、JSON的特点 三、JSON语法 1、json中的数据类型 四、JSON文件的定义 五、读取JSON文件 1、读取json文件的两种方式 (1)read、write (2)json.load 2、使用json.load读取json文件的步骤 3、练习读取json文件 六、练…...
三八妇女节快乐----IT女神活动随笔
献丑了,一首小小散文诗,请大家轻喷 O(≧口≦)O 我的答案 天下芸芸众生,好似夜幕漫天繁星。 与你相识,只是偶然。 简单的一个招呼,于是开始了一段故事。 我们或是诉说,或是分享; 我们彼此倾听&…...
【PSO-PID】使用粒子群算法整定PID参数控制起动机入口压力值
最近在学优化算法,接触到了经典寻优算法之粒子群PSO,然后就想使用PSO算法来调节PID参数,在试验成功之后将此控制算法应用到了空气起动系统上,同时与之前的控制器进行对比看看哪种控制效果最好。 0 引言 PID参数整定主要有两种&…...
当代数据分析指南:激发商业洞见的七个方法(上)
如果说眼下的发生的事能证明什么,那就是基于实时可信的数据分析正在变得越来越重要。但是要是想要在需要的时候准确地获取中肯的洞察,我们所需要的可不只是漂亮的可视化。 如何让你的员工都有能力和机会都做出最好的决策,不管这个决策会有多…...
javaWeb核心02-JSP、EL、JSTL、MVC
文章目录JSP1,JSP 概述2,JSP 快速入门2.1 搭建环境2.2 导入 JSP 依赖2.3 创建 jsp 页面2.4 编写代码2.5 测试3,JSP 原理4,JSP 脚本4.1 JSP 脚本分类4.2 案例4.2.1 需求4.2.2 实现4.2.3 成品代码4.2.4 测试4.3 JSP 缺点5࿰…...
spring-boot+mybatis-plus连接Oracle数据库,及查询相关数据
配置java 略(这里我用的是jdk1.8) 配置maven 环境变量: M2_HOME:D:\LJ\software\java\maven\apache-maven-3.6.3 Path:%M2_HOME%\bin 仓库/jdk/镜像云设置(./config/sitting) 仓库 <localRepository> D:/…...
电商使用CRM系统有什么好处,如何选择
数据显示,使用电商CRM客户管理系统后,企业销售额提高了87%,客户满意度提高了74%,业务效率提高了73%。要在竞争激烈的电商市场取得成功,与目标受众的有效沟通是有效的方法。下面说说什么是电商CRM系统?电商C…...
Nacos2.2.0多数据源适配oracle12C-修改Nacos源码
从2.2.0版本开始,可通过SPI机制注入多数据源实现插件,并在引入对应数据源实现后,便可在Nacos启动时通过读取application.properties配置文件中spring.datasource.platform配置项选择加载对应多数据源插件.本文档详细介绍一个多数据源插件如何实现以及如何使其生效。 文章目录一…...
第十四届蓝桥杯三月真题刷题训练——第 5 天
目录 题目1:数的分解 题目描述 运行限制 代码: 题目2:猜生日 题目描述 运行限制 代码: 题目3:成绩分析 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 题目4:最大和…...
大数据框架之Hive:第3章 DDL(Data Definition Language)数据定义
第3章 DDL(Data Definition Language)数据定义 3.1 数据库(database) 3.1.1 创建数据库 1)语法 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPER…...
概率论小课堂:统计学是大数据方法的基础
文章目录 引言I 统计学1.1 统计学的内容1.2 统计学的目的II 用好数据的五个步骤2.1 设立研究目标2.2 设计实验,选取数据。2.3 根据实验方案进行统计和实验,分析方差。2.4 通过分析进一步了解数据,提出新假说。2.5 使用研究结果III 数据没用好的原因3.1 霍桑效应3.2 数据的稀…...
监控集群概念讲解
监控概述 1、监控的重要性 监控是运维日常的重要工作之一; 监控是有多重要? 监控可以帮助运维监控服务器的状态;要及时解决; 如果淘宝、腾讯宕机了1个小时? 损失是无法估量的; 服务器是否故障、宕不…...
如何通过DAS连接GaussDB
文章目录1 实验介绍2 实验目的3 配置DAS服务4 SQL使用入门1 实验介绍 本实验主要描述如何通过华为云数据管理服务 (Data Admin Service,简称DAS) 来连接华为云GaussDB数据库实例,DAS是一款专业的简化数据库管理工具,提供优质的可视化操作界面…...
支持在局域网使用的项目管理系统有哪些?5款软件对比
一、选择私有部署的原因以及该方案的优点有很多可能的原因导致人们更倾向于使用私有部署的企业管理软件,其中一些原因可能包括:1.数据安全性要求:一些企业管理软件包含敏感的商业数据和隐私信息,为了保护这些信息不被未经授权的第…...
Linux CentOS7 MySQL 5.7安装
准备工作 //创建目录 mkdir /opt/mysql //跳转目录 cd /opt/mysql下载MySQL 请耐心等待,也可以在Windows下载以后上传到 /opt/mysql目录 wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar解压 tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-b…...
Kubernetes学习(四)控制器
ReplicaSet ReplicaSet的目的是维护一组在任何时候都处于运行状态的Pod副本的稳定集合。因此,它通常用来保证给定数量的、完全相同的Pod的可用性。 ReplicaSet的工作原理 ReplicaSet是通过一组字段来定义的,包括一个用来识别可获得的pod的集合的选择符…...
vue组件间通信的几个方法
一,props属性传递数据 适用场景:父组件传递数据给子组件 子组件设置props属性,定义接收父组件传递过来的参数 父组件在使用子组件标签中通过字面量来传递值 Children.vue props:{ // 字符串形式 name:String // 接收的类型参数 // 对象…...
商品价格区间设置与排序--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)
实例2:商品价格区间设置与排序 在网上购物时,面对琳琅满目的商品,我们应该如何快速选择适合自己的商品呢?为了能够让用户快速地定位到适合自己的商品,每个电商购物平台都提供价格排序与设置价格区间功能。假设现在某平…...
mybatis中sqlSession的使用
文章目录sqlsession的使用依赖jdbc.propertiesmysql-config.xml配置逆向工程创建sqlSessionsqlsession的使用 在最开始我们使用jdbcUtil的方式进行硬编码,sql字符串写的很难受,使用mybatis可以解决这个问题,它提供了数据库与实体类的关系映射…...
TPOT(Tree-based Pipeline Optimization Tool) API简介
文章目录TPOT简介TPOT APIClassification接口形式:Parameters:Attributes:Functions:Regression接口形式Parameters:(只列与分类任务有差异的参数)TPOT简介 TPOT是一个Python自动机器学习(AML)…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
