JSON简介以及如何在Python中使用JSON

什么是JSON?

JSON是"JavaScript Object Notation"的简称,是一种数据交换格式

JSON格式

假设我们有一个对象,这个对象有两个属性:“name”跟“age”。

在JSON中是这样表达的:

{

        "name":"男孩",

        “age”:"19"

}

 敢于想象的同学应该立马想到了,这种格式在Python中不就是字典么??

没错,可以简单理解为另类的字典,因为JSON的数据格式跟字典几乎一毛一样(对应文章标题了)

JSON使用键值对的方式来承载数据,每个键值对之间使用逗号隔开。

JSON键值对的数据类型

在JSON中键一定是一个字符串,必须用双引号括起来!!

而值的类型有七种:

字符串、数值、对象、数组、truefalsenull

 其中,数值类型可以使用科学计数法

例如:

JSON嵌套

在JSON中数据也可以嵌套,即一个JSON数据中可以嵌套N个数据,并且使用“[]”来区分。

我去,这不就是Python中的列表???)

格式:

[元素1,元素2]

例如:

{

        "name":"人",

        "friend":["狗","猫","老鼠"],

        "description":{

                "age":"19",

                "sex":"male"

        }        

}

在Python中解析JSON

在Python中对于JSON的解析,需要我们安装JSON库。

安装方法:

pip install json

对于JSON的解析主要有两种:

1.JSON向Python的数据类型转换

2.Python的数据类型向JSON转换

Python向JSON的数据类型转换

Python转换到JSON使用:“json.dumps”函数。

dumps函数语法:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf8",default=None,sort_keys=False, **kw)

 其中:

1.ensure_ascii:该项设置为False可以输出中文

2.indent:可以设置json对象的缩进(4代表一个Tab的缩进)

3.separators:通过separators可以设置json对象的分隔符

4.sort_keys:当该项设置为True时,生成的json对象是按键排序的。

例如:

import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)

 上面的代码输出结果为:

{"a": "Runoob","b": 7
}

 PS:在Python将某个数据转换为JSON格式后,我们在python中进行type查看数据类型,仍然是str类型,这代表着Python仅仅是将数据改动json的“格式”,并不是在Python中创建了一个json数据类型,在python中没有json数据类型!!!

向某个JSON文件写入数据,我们可以使用:“json.dump”函数,不再是dumps函数。

格式:

dump(要写入的json数据,文件权柄)

JSON向Python转换

JSON向Python转换使用:“json.loads”函数。

例如:

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(text)

 输出为:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

 值得注意的是,不同的json对象转换成的Python数据类型也是不同的,详情可以看下表:

对某个JSON文件进行读取,我们可以使用:“json.load”函数,而不是loads函数。

格式:

load(文件权柄)

对于JSON文件操作的示例

存json文件
    info = {'name':'人', 'husband':'人人', 'age':22}
    file = open ('人.json', 'w', encoding='utf-8')
    json.dump(info, filee)
    file.close()
读json文件
    file = open ('人.json', 'r', encoding='utf-8')
    my_info = json.load(file)
    file.close()

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

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

相关文章

【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章

Stage模型-基本概念 名词解释 AbilityStage:应用组件的“舞台“ UIAbility:包含UI界面的应用组件,是系统调度的基本单元 WindowStage:组件内窗口的“舞台“ Window:用来绘制UI页面的窗口 HAP:Harmony Ability Package(鸿蒙能力类型的包) HSP:Harmony Sh…

【Flink精讲】Flink状态及Checkpoint调优

RocksDB大状态调优 RocksDB 是基于 LSM Tree 实现的(类似 HBase) ,写数据都是先缓存到内存中, 所以 RocksDB 的写请求效率比较高。 RocksDB 使用内存结合磁盘的方式来存储数据,每 次获取数据时,先从内存中 …

Unity:WWW工具类的使用技巧

1、简述 Unity的WWW类是一种用于发送HTTP请求和接收HTTP响应的类。它可以用来访问网络上的资源,如文本、图像、音频和视频等。本文将介绍如何使用Unity的WWW类来访问网络资源。 2、创建一个简单的HTTP请求 首先,我们需要创建一个WWW对象来发送HTTP请求…

第 1 章 微信小程序与云开发从入门到实践从零开始做小程序——开发认识微信小程序

小北的参考工具书 小程序开发的图书并不少,这本书仍然值得你拥有! 首先,这是一本全栈小程序开发教程,循序渐进,由浅入深,介绍了小程序开发你想了解的方方面面,包括近其小程序开发的各种新技术应…

2024程序员容器化上云之旅-第2集-Ubuntu-WSL2-Windows11版:接近深洞

故事梗概 Java程序员马意浓在互联网公司维护老旧电商后台系统。 渴望学习新技术的他在工作中无缘Docker。 他开始自学Vue3并使用SpringBoot3完成了一个前后端分离的Web应用系统,并打算将其用Docker容器化后用K8s上云。 3 挑选工具 马意浓画好架构图后&#xff…

【Java程序员面试专栏 算法思维】四 高频面试算法题:回溯算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊回溯算法,主要就是排列组合问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间岛屿数量网格搜索分别向上下左右四个方向探索,遇到海洋…

ETL是什么

一、ETL概念 ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库&#xff…

基于Java SSM框架实现音乐播放器管理系统项目【项目源码+论文说明】

基于java的SSM框架实现音乐播放器管理系统演示 摘要 随着社会的发展,计算机的优势和普及使得音乐播放器管理系统的开发成为必需。音乐播放器管理系统主要是借助计算机,通过对首页、音乐推荐、付费音乐、论坛信息、个人中心、后台管理等信息进行管理。减…

图片录入设备、方式与质量对图片转Excel的影响

随着数字化时代的到来,图片已经成为人们日常生活中不可或缺的一部分。在各行各业中,图片的应用越发广泛,从而促使了图片处理技术的快速发展。然而,图片的质量对于后续数据处理和分析的准确性和可靠性有着至关重要的影响。本文将从…

芯来芯片的硬件栈溢出检测机制(Stack Check)介绍

1、发生栈溢出上报的中断号 发生栈上溢,上报中断号0x18;发生栈下溢,上报终端号0x19; 2、栈溢出控制寄存器 1、MODE位设置为0,选择栈的上溢和下溢检查模式; 2、使能栈上溢检查和栈下溢检查; 3、设…

Nginx之rewrite重写功能

一、rewrite概述 1、rewrite功能 访问重写 rewrite 是 Nginx HTTP 请求处理过程中的一个重要功能,它是以模块的形式存在于代码中的,其功能是对用户请求的 URI 进行 PCRE 正则重写,然后返回 30 重定向跳转或按条件执行相关配置。 Nginx服务…

【服务器数据恢复】ext3文件系统下硬盘坏道掉线的数据恢复案例

服务器数据恢复环境: 一台IBM某型号服务器上有16块FC硬盘组建RAID阵列。上层linux操作系统,ext3文件系统,部署有oracle数据库。 服务器故障&检测: 服务器上跑的业务突然崩溃,管理员发现服务器上有2块磁盘的指示灯…