【Python】json文件的读取

news2024/9/20 14:30:15

文章目录

  • 1. json简介
  • 2.json的使用规范
  • 3.json文件的书写
  • 4.json文件的读取

在这里插入图片描述

1. json简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将结构化数据进行传输和存储。它基于JavaScript语法,但可以被多种编程语言解析和生成。

json 基于文本,独立于语言的轻量级的数据交换格式

  • 基于文本,是一个文本文件,不能包含图片,音视频等
  • 独立于语言,不是某个语言特有的,每种编程语言都可以使用的
  • 轻量级,相同的数据,和其他格式相比,占用的大小比较小
  • 数据交换格式,后端程序员 给前端的数据 (json,xml,ProtoBuf等)

JSON具有广泛的应用,尤其在Web开发中常用于API的数据交互。在许多编程语言中,都有内置的JSON解析器和生成器,可以方便地处理JSON数据。

2.json的使用规范

JSON使用键值对的方式表示数据,其中键是字符串,值可以是字符串、数字、布尔值、对象、数组或null。

JSON的一些基本规则:

  1. 键和值之间使用冒号(:)分隔。
  2. 键值对之间使用逗号(,)分隔。
  3. 数据包裹在大括号({})中表示一个对象。
  4. 数组使用方括号([])表示,其中的元素可以是任意类型的数据,用逗号分隔。
  5. json中的字符串必须使用双引号 ""
  6. json文件的后缀名是 .json
  7. 一个json文件对应一个对象或数组

3.json文件的书写

一个简单的JSON示例:

{
    "name": "zhangsan",
    "age": 20,
    "city": "BeiJing",
    "hobbies": ["reading", "running", "playing guitar"]
}

在这里插入图片描述
在上面的示例中,有一个包含个人信息的对象。它包含名称、年龄、所在城市、爱好数组
注意:
不能在一个json文件中定义两个json

在这里插入图片描述
如果想要在一个json文件中定义多个json,需要使用数组,如下:
在这里插入图片描述

4.json文件的读取

使用python读取json文件分为三步:

  1. 导包
  2. 读打开文件
  3. 读文件

在此之前,先使用普通文件的读取方式进行读取:

with open("info.json",'r',encoding='UTF-8') as f:
    buf = f.read()
    print(type(buf))
    print(buf)

在这里插入图片描述
此处返回的结果是 字符串,在字符串中获取json中的键值对的信息是比较困难的.

不过在python中的json包中提供了一个json.load()方法

import json

with open("info.json",'r',encoding='UTF-8') as f:
    result = json.load(f)
    print(type(result))
    print(result)

在这里插入图片描述
可以看到返回值类型变成了 dict(字典),python字典中的数据也是键值对,因此要获取对应的数据也就很方便了

  1. 使用方括号操作符[key]:可以使用字典的key作为索引来获取对应的value。
  2. 使用get()方法:get()方法可以接收一个key参数,并返回对应的value。如果key不存在,则可以指定一个默认值作为get()方法的第二个参数,如果不指定,默认值为None。

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

玩机搞机----面具模块的组成 制作模块

root面具相信很多玩家都不陌生。早期玩友大都使用第三方卡刷补丁来对系统进行各种修复和添加功能。目前面具补丁代替了这些操作。今天的帖子了解下面具各种模块的组成和几种普遍的代码组成。 Magisk中运行的每个单独的shell脚本都将在内部的BusyBox的shell中执行。对于与第三方…

(排序) 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 ——【Leetcode每日一题】

❓剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 难度:简单 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。 示例: 输入:nums [1…

绘制原型图的常用工具之墨刀

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于OA项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.墨刀是什么 二.墨刀的作用 三.墨刀界…

opencv-手势识别

# HandTrackingModule.py import cv2 import mediapipe as mpclass HandDetector:"""使用mediapipe库查找手。导出地标像素格式。添加了额外的功能。如查找方式,许多手指向上或两个手指之间的距离。而且提供找到的手的边界框信息。"""…

【MySQL】JSON 格式字段处理

MySQL 5.7 版本后已支持 JSON 格式,这虽是 MySQL 的一小步,但可以说是程序开发的一大步,再也不用将 JSON 内容塞到 VARCHAR 类型字段了,程序设计也会变得更加灵活。网上大多只针对JSONObject 对象类型,本文也将详解 JS…

Linux网络服务之iptables防火墙工具

I P T A B L E S 一、防火墙简介1.1 netfilter1.2 firewalld和iptables 二、iptables工具简述2.1 定义2.2 三种报文流向2.3 iptables的表、链结构(非常重要)2.3.1 "四表" ----- 规则表2.3.2 "五链" ----- 规则链 三、iptables配置3.…

适合低成本兼职的十个职业,做得好可能比上班挣得还多

这个年头干点什么兼职或者副业比较合适的,其实做兼职和副业就那么几条原则:最好是轻资产或者不投入资金,因为这个年代是现金流和储蓄为王,不能乱投资,一旦出了差错,更是雪上加霜。还有就是最好在网络上做兼…

对话音视频牛哥:开发RTSP|RTMP直播播放器难不难?难在哪?

我关注的播放器指标 好多开发者跟我交流音视频相关技术的时候,经常问我的问题是,多久可以开发个商业级别的RTMP或RTSP播放器?你们是怎样做到毫秒级延迟的?为什么一个播放器,会被你们做到那么复杂?带着这些…

一文详解4种聚类算法及可视化(Python)

在这篇文章中,基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性,看一下对这些公司进行聚类的四种不同方式。 苹果(AAPL),亚马逊(AMZN),Facebook(META&…

裴蜀定理-拓展欧几里得算法--夏令营

题目 知识点 1.裴蜀定理: 欧几里得算法gcd辗转相除法 拓展欧几里得算法exgcd裴蜀定理 2.证明: 3.. 代码: int exgcd(int a, int b, int& x, int& y) {if (!b){x 1, y 0;return a;}int d exgcd(b, a % b, y, x);y - a / b * x;…

rabbitMq安装后无法启动可视化页面http://localhost:15672处理

本次安装环境信息: 系统:win10 64位专业版 erlang:otp_win64_23.0 rabbitMQ:rabbitmq-server-3.8.5 安装rabbitMQ需要依赖erlang语言环境,所以需要我们下载erlang的环境安装程序。 一、下载安装程序 rabbitMQ安装…

Lombok 同时使用 @Data 和 @Builder 的巨坑,千万别乱用!

1、Lombok 使用演示 Lombok 使⽤同时使⽤ Data 和 Builder ,构建无参构造器报错!编译不通过。如下图: Lombok 使⽤ Data 可以自动⽣成⽆参构造和类⾥⾯所有属性的 getter/setter ⽅法。可以简化我们代码的开发。(IDEA 需要安装 L…

Redis主从复制搭建

Redis主从复制搭建 Redis虽然拥有非常高的性能,但是在实际的生产环境中,使用单机模式还是会产生不少问题的,比如说容易出现 单机故障,容量瓶颈,以及QPS瓶颈等问题。通常环境下,主从复制、哨兵模式、Redis…

从关键新闻和最新技术看AI行业发展(2023.6.23-7.9第二期) |【WeThinkIn老实人报】

Rocky Ding 公众号:WeThinkIn 写在前面 【WeThinkIn老实人报】是WeThinkIn的全新栏目,旨在整理&挖掘AI行业的关键新闻和最新技术,同时Rocky会对这些关键信息进行解读,力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的…

中国大学生服务外包创新创业大赛丨借 AI 之力,助“记账”难题

一、中国大学生服务外包创新创业大赛 赛事介绍 中国大学生服务外包创新创业大赛,是响应国家关于鼓励服务外包产业发展、加强服务外包人才培养的相关战略举措与号召,举办的每年一届的全国性竞赛。 大赛均由中华人民共和国教育部、中华人民共和国商务部…

08.SpringBoot请求相应

文章目录 1 请求1.1 Postman1.2 简单参数1.2.1 原始方式1.2.2 SpringBoot方式1.2.3 参数名不一致 1.3 实体参数1.3.1 简单实体对象1.3.2 复杂实体对象 1.4 数组集合参数1.4.1 数组1.4.2 集合 1.5 日期参数1.6 JSON参数1.7 路径参数 2 响应2.1 ResponseBody注解2.2 统一响应结果…

RHCE——二、时间服务器

时间服务器 一、时间服务器1、重要性2、Linux的系统时钟以及硬件时钟3、NTP网络时间协议4、Chrony介绍 二、chrony安装与配置1、安装2、Chrony配置文件分析3、实验3.1 实验13.2 实验2 三、chronyc命令1、查看时间服务器:2、chronyc sources输出分析3、其它命令4、常…

Docker网络的概念

一、说明 本文叙述Docker网络,介绍关于Docker网络、网桥网络、网桥网络、自定义网桥网络、主机网络、无网络 MACVLAN 和 IPVLAN 网络、叠加网络等网络模式。Docker 是一个用于开发、发布和运行应用程序的开放平台。 二、 什么是 Docker Networking? Doc…

如何在HTML里面使用session

原因在springboot项目里面不想使用jsp界面,怎么在HTML里面使用session呢? 借助sessionStorage方法,话不多说直接上代码 自定义一个js文件把这个代码放里面就可,根据具体业务来修改 // globalData 可以随便定义,调用的…

Facebook AI mBART:巴别塔的硅解

2018年,谷歌发布了BERT(来自transformers的双向编码器表示),这是一种预训练的语言模型,在一系列自然语言处理(NLP)任务中对SOTA结果进行评分,并彻底改变了研究领域。类似的基于变压器…