当前位置: 首页 > news >正文

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文件


一、介绍

1、JSON的全程是“JavaScript Object Notation”,是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式
  • 基于文本:json是文本文件,一般不包含图片、视频等内容
  • 独立于语言:json不是某一种语言特有的,Python、Java、C++...等都能操作python文件
  • 轻量级:相同的数据量,json文件占用的文件大小相对较小
  • 数据交换格式:后端服务器和前端页面交换数据 使用的格式
2、在自动化测试中经常用来存放测试数据,文件后缀名为:.json
  • 其他常见的数据源文件格式:txt/excel/csv/xml

二、JSON的特点

1、纯文本格式:不支持音频/视频/图片
2、具有良好的自我描述性,方便阅读与编写
3、具有清晰的层次结构
4、相较于XML文件,能够有效提升网络传输效率

三、JSON语法

1、json中的数据类型

  • 对象{}   --->   python字典
  • 数组{}   --->   python列表
  • 字符串,必须使用双引号   --->   str
  • 数字类型   --->   int、float
  • bool类型(true false)   --->   True False
  • 空值null   --->   None
2、json文件,是一个对象 或者是 数组,对象和数组可以相互嵌套
3、json中的对象,是由键值对组成的,键必须是字符串类型
4、json中的数据直接使用逗号隔开,最后一个数据后边不能加逗号

四、JSON文件的定义

1、需求
  • 我叫小明,我今年18岁,性别男,学校空,爱好听歌、吃饭、打豆豆,我的居住地址为:国家中国、城市广州。
2、创建json文件
3、示例代码
{"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文件

1、需求
  • 我叫小明,我今年18岁,性别男,爱好听歌、吃饭、打豆豆,我的居住地址为:国家中国、城市广州。
  • 我叫小红,我今年17岁,性别女,爱好听歌、学习、购物,我的居住地址为:国家中国、城市北京。
  • 获取每个人的姓名,年龄,性别,城市
2、json文件
[{"name": "小明","age": 18,"isMan": true,"hobby": ["听歌","吃饭","打豆豆"],"adress": {"country": "China","city": "广州"}},{"name": "小红","age": 17,"isMan": false,"hobby": ["听歌","学习","购物"],"adress": {"country": "China","city": "北京"}}
]
3、代码实现
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文件的两种方式 &#xff08;1&#xff09;read、write &#xff08;2&#xff09;json.load 2、使用json.load读取json文件的步骤 3、练习读取json文件 六、练…...

三八妇女节快乐----IT女神活动随笔

献丑了&#xff0c;一首小小散文诗&#xff0c;请大家轻喷 O(≧口≦)O 我的答案 天下芸芸众生&#xff0c;好似夜幕漫天繁星。 与你相识&#xff0c;只是偶然。 简单的一个招呼&#xff0c;于是开始了一段故事。 我们或是诉说&#xff0c;或是分享&#xff1b; 我们彼此倾听&…...

【PSO-PID】使用粒子群算法整定PID参数控制起动机入口压力值

最近在学优化算法&#xff0c;接触到了经典寻优算法之粒子群PSO&#xff0c;然后就想使用PSO算法来调节PID参数&#xff0c;在试验成功之后将此控制算法应用到了空气起动系统上&#xff0c;同时与之前的控制器进行对比看看哪种控制效果最好。 0 引言 PID参数整定主要有两种&…...

当代数据分析指南:激发商业洞见的七个方法(上)

如果说眼下的发生的事能证明什么&#xff0c;那就是基于实时可信的数据分析正在变得越来越重要。但是要是想要在需要的时候准确地获取中肯的洞察&#xff0c;我们所需要的可不只是漂亮的可视化。 如何让你的员工都有能力和机会都做出最好的决策&#xff0c;不管这个决策会有多…...

javaWeb核心02-JSP、EL、JSTL、MVC

文章目录JSP1&#xff0c;JSP 概述2&#xff0c;JSP 快速入门2.1 搭建环境2.2 导入 JSP 依赖2.3 创建 jsp 页面2.4 编写代码2.5 测试3&#xff0c;JSP 原理4&#xff0c;JSP 脚本4.1 JSP 脚本分类4.2 案例4.2.1 需求4.2.2 实现4.2.3 成品代码4.2.4 测试4.3 JSP 缺点5&#xff0…...

spring-boot+mybatis-plus连接Oracle数据库,及查询相关数据

配置java 略&#xff08;这里我用的是jdk1.8&#xff09; 配置maven 环境变量&#xff1a; M2_HOME&#xff1a;D:\LJ\software\java\maven\apache-maven-3.6.3 Path&#xff1a;%M2_HOME%\bin 仓库/jdk/镜像云设置(./config/sitting) 仓库 <localRepository> D:/…...

电商使用CRM系统有什么好处,如何选择

数据显示&#xff0c;使用电商CRM客户管理系统后&#xff0c;企业销售额提高了87%&#xff0c;客户满意度提高了74%&#xff0c;业务效率提高了73%。要在竞争激烈的电商市场取得成功&#xff0c;与目标受众的有效沟通是有效的方法。下面说说什么是电商CRM系统&#xff1f;电商C…...

Nacos2.2.0多数据源适配oracle12C-修改Nacos源码

从2.2.0版本开始,可通过SPI机制注入多数据源实现插件,并在引入对应数据源实现后,便可在Nacos启动时通过读取application.properties配置文件中spring.datasource.platform配置项选择加载对应多数据源插件.本文档详细介绍一个多数据源插件如何实现以及如何使其生效。 文章目录一…...

第十四届蓝桥杯三月真题刷题训练——第 5 天

目录 题目1&#xff1a;数的分解 题目描述 运行限制 代码&#xff1a; 题目2&#xff1a;猜生日 题目描述 运行限制 代码&#xff1a; 题目3&#xff1a;成绩分析 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码&#xff1a; 题目4&#xff1a;最大和…...

大数据框架之Hive:第3章 DDL(Data Definition Language)数据定义

第3章 DDL&#xff08;Data Definition Language&#xff09;数据定义 3.1 数据库&#xff08;database&#xff09; 3.1.1 创建数据库 1&#xff09;语法 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、监控的重要性 监控是运维日常的重要工作之一&#xff1b; 监控是有多重要&#xff1f; 监控可以帮助运维监控服务器的状态&#xff1b;要及时解决&#xff1b; 如果淘宝、腾讯宕机了1个小时&#xff1f; 损失是无法估量的&#xff1b; 服务器是否故障、宕不…...

如何通过DAS连接GaussDB

文章目录1 实验介绍2 实验目的3 配置DAS服务4 SQL使用入门1 实验介绍 本实验主要描述如何通过华为云数据管理服务 (Data Admin Service&#xff0c;简称DAS) 来连接华为云GaussDB数据库实例&#xff0c;DAS是一款专业的简化数据库管理工具&#xff0c;提供优质的可视化操作界面…...

支持在局域网使用的项目管理系统有哪些?5款软件对比

一、选择私有部署的原因以及该方案的优点有很多可能的原因导致人们更倾向于使用私有部署的企业管理软件&#xff0c;其中一些原因可能包括&#xff1a;1.数据安全性要求&#xff1a;一些企业管理软件包含敏感的商业数据和隐私信息&#xff0c;为了保护这些信息不被未经授权的第…...

Linux CentOS7 MySQL 5.7安装

准备工作 //创建目录 mkdir /opt/mysql //跳转目录 cd /opt/mysql下载MySQL 请耐心等待&#xff0c;也可以在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副本的稳定集合。因此&#xff0c;它通常用来保证给定数量的、完全相同的Pod的可用性。 ReplicaSet的工作原理 ReplicaSet是通过一组字段来定义的&#xff0c;包括一个用来识别可获得的pod的集合的选择符…...

vue组件间通信的几个方法

一&#xff0c;props属性传递数据 适用场景&#xff1a;父组件传递数据给子组件 子组件设置props属性&#xff0c;定义接收父组件传递过来的参数 父组件在使用子组件标签中通过字面量来传递值 Children.vue props:{ // 字符串形式 name:String // 接收的类型参数 // 对象…...

商品价格区间设置与排序--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例2&#xff1a;商品价格区间设置与排序 在网上购物时&#xff0c;面对琳琅满目的商品&#xff0c;我们应该如何快速选择适合自己的商品呢&#xff1f;为了能够让用户快速地定位到适合自己的商品&#xff0c;每个电商购物平台都提供价格排序与设置价格区间功能。假设现在某平…...

mybatis中sqlSession的使用

文章目录sqlsession的使用依赖jdbc.propertiesmysql-config.xml配置逆向工程创建sqlSessionsqlsession的使用 在最开始我们使用jdbcUtil的方式进行硬编码&#xff0c;sql字符串写的很难受&#xff0c;使用mybatis可以解决这个问题&#xff0c;它提供了数据库与实体类的关系映射…...

TPOT(Tree-based Pipeline Optimization Tool) API简介

文章目录TPOT简介TPOT APIClassification接口形式&#xff1a;Parameters&#xff1a;Attributes:Functions&#xff1a;Regression接口形式Parameters:&#xff08;只列与分类任务有差异的参数&#xff09;TPOT简介 TPOT是一个Python自动机器学习&#xff08;AML&#xff09;…...

Java 19和IntelliJ IDEA,如何和谐共生?

Java仍然是目前比较流行的编程语言&#xff0c;它更短的发布节奏让开发者每六个月左右就可以试用新的语言或平台功能&#xff0c;IntelliJ IDEA帮助我们更流畅地发现和使用这些新功能。IntelliJ IDEA v2022.3正式版下载(Q技术交流&#xff1a;786598704&#xff09;在本文中&am…...

js循环判断的方法

js循环判断的方法if语句if else语句if else if else if......三元表达式switchswitch语句和if语句的区别for循环while循环do while循环for inforEachfor of性能问题if语句 条件满足就执行&#xff0c;不满足就不执行 if(条件){语句}if else语句 条件满足&#xff0c;执行语句…...

git快速入门(1)

1 git的下载与安装1&#xff09;下载git安装包下载路径&#xff1a;https://git-scm.com/我的操作系统是window&#xff0c;64位的&#xff0c;我下载的Git-2.33.0-64-bit.exe&#xff0c;从官网下载或者从网址下载链接&#xff1a;链接地址&#xff1a;https://pan.baidu.com/…...

韩国绿芯1~16通道触摸芯片型号推荐

随着技术的发展&#xff0c;触摸感应技术正日益受到更多关注和应用&#xff0c;目前实现触摸感应的方式主要有两种&#xff0c;一种是电阻式&#xff0c;另一种是电容式。电容式触摸具有感应灵敏、功耗低、寿命长等特点&#xff0c;因此逐步取代电阻式触摸&#xff0c;成为当前…...

Go语言设计与实现 -- http服务器编程

Go http服务器编程 初始 http 是典型的 C/S 架构&#xff0c;客户端向服务端发送请求&#xff08;request&#xff09;&#xff0c;服务端做出应答&#xff08;response&#xff09;。 golang 的标准库 net/http 提供了 http 编程有关的接口&#xff0c;封装了内部TCP连接和…...

MySQL-视图

视图是什么&#xff1f; 一张虚表&#xff0c;和真实的表一样。视图包含一系列带有名称的行和列数据。视图是从一个或多个表中导出来的&#xff0c;我们可以通过insert&#xff0c;update&#xff0c;delete来操作视图。当通过视图看到的数据被修改时&#xff0c;相应的原表的数…...

都工作3年了,怎么能不懂双亲委派呢?(带你手把手断点源码)

&#x1f497;推荐阅读文章&#x1f497; &#x1f338;JavaSE系列&#x1f338;&#x1f449;1️⃣《JavaSE系列教程》&#x1f33a;MySQL系列&#x1f33a;&#x1f449;2️⃣《MySQL系列教程》&#x1f340;JavaWeb系列&#x1f340;&#x1f449;3️⃣《JavaWeb系列教程》…...

Hive 运行环境搭建

文章目录Hive 运行环境搭建一、Hive 安装部署1、安装hive2、MySQL 安装3、Hive 元数据配置到 Mysql1) 拷贝驱动2) 配置Metastore 到 MySQL3) 再次启动Hive4) 使用元数据服务的方式访问Hive二、使用Dbaver连接HiveHive 运行环境搭建 HIve 下载地址&#xff1a;http://archive.a…...

SAP ABAP 深度解析Smartform打印特殊符号等功能

ABAP 开发人员可以在 Smartform 输出上显示 SAP 图标或 SAP 符号。例如,需要在 SAP Smart Forms 文档上显示复选框形状的输出。SAP Smartform 文档上可以轻松显示空复选框、标记复选框以及 SAP 图标等特殊符号。 在 SAP Smartform 文档中添加一个新的文本节点。 1. 单击“更…...

React17+React Hook+TS4 最佳实践仿 Jira 企业级项目笔记

前言 个人笔记,记录个人过程,如有不对,敬请指出React17React HookTS4 最佳实践仿 Jira 企业级项目项目完成到第十章,剩下后面就没有看了,说的不是特别好 github地址:https://github.com/superBiuBiuMan/React-jira husky方便我们管理git hooks的工具 REST-API风格 https://zh…...

长沙 做营销型网站的公司/自媒体有哪些平台

pjsip是纯C语言写的一个sip协议库&#xff0c;整个代码写得还是比较模块化的&#xff0c;得益于此的设计&#xff0c;只要理解了pjsip的设计&#xff0c;就可以对其网络层进行扩展。 我们项目是QT作为主要开发工具&#xff0c;而PJSIP的库默认是利用select或者io queue的&#…...

wordpress进后台/高端网站建设公司排名

1.流程示意图2.流程详解上面的流程是整个mapreduce最全工作流程&#xff0c;但是shuffle过程只是从第7步开始到第16步结束&#xff0c;具体shuffle过程详解&#xff0c;如下&#xff1a;1&#xff09;maptask收集我们的map()方法输出的kv对&#xff0c;放到内存缓冲区中2&#…...

佛山有那些定制网站建设公司/研究生培训机构排名

在派生类中重新定义基类中的虚函数&#xff0c;是函数重载的另一种形式。 但虚函数与一般重载函数有区别&#xff0c;具体区别在于&#xff1a; (1) 重载函数的调用是以所传递参数序列的差别作为调用不同函数的依据&#xff1b;而虚函数是根据对象的不同去调用不同类的虚函数。…...

马云做网站最开始怎么盈利的/樱桃bt官网

以训练过程为例&#xff0c;执行以下脚本。 python tools/train.py configs/cifar10/resnet50.py --resume-fromwork_dirs/resnet50/epoch_20.pth 1、整体流程 首先加载配置&#xff0c;args为用户输入参数&#xff0c;cfg为配置文件配置参数。只有将参数统一合并至cfg管理。…...

成都网站建设优秀公司/seo工作职位

实现目标 昨天晚上看完碟中谍后&#xff0c;有点小激动&#xff0c;然后就有了这片文章。 我们将猫眼上碟中谍的全部评论保存下来&#xff0c;用于后期分析&#xff5e; 总共评论3W条左右。 逻辑梳理 猫眼PC网页只能查看热门评论&#xff0c;只有在手机端页面才能查看全部评论。…...

做的最少的网站/广州各区最新动态

问题描述 如果将课本上的Hanoi塔问题稍做修改&#xff1a;仍然是给定N只盘子&#xff0c;3根柱子&#xff0c;但是允许每次最多移动相邻的M只盘子&#xff08;当然移动盘子的数目也可以小于M&#xff09;,最少需要多少次&#xff1f; 例如N5&#xff0c;M2时&#xff0c;可以分…...