python基础学习(最终篇)

文章目录

  • JSON的基础使用
    • 一. JSON简介
    • 二. JSON语法规则
    • 三. JSON数据类型
    • 四. JSON对象
    • 五. JSON数组
    • 六. JSON函数
      • 1. json.dumps
      • 2. json.loads
      • 3. json.dump
      • 4. json.load
      • 5. encode
      • 6. decode
      • 7. 参数说明
    • 总结

JSON的基础使用

一. JSON简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它是JavaScript的子集,易于人阅读和编写。

JSON用来存储和交换文本信息,比xml更小/更快/更易解析,易于读写,占用带宽小,网络传输速度快的特性,适用于数据量大,不要求保留原有类型的情况。。

前端和后端进行数据交互,其实就是JS和Python进行数据交互!

二. JSON语法规则

  1. 名称必须用双引号(即:" ")来包括
  2. 值可以是双引号包括的字符串、数字、true、false、null、JavaScript数组或子对象
  3. 数据在name/value中
  4. 数据见用逗号分隔
  5. 花括号保存对象
  6. 方括号保存数组

三. JSON数据类型

一并列举出Python与JSON数据类型的映射关系:

PythonJSON
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull

四. JSON对象

在花括号中书写,对象可以包含多个名称/值对。
例如:

{"firstname": "jonh", "lastname": "Doe"}

五. JSON数组

Employees是包含三个对象的数组。

每个对象代表一条关于某个人名的记录,在方括号中书写,数组可以包含多个对象:

{"employees": [{ “firstName”:“John” , “lastName”:“Doe” },{ “firstName”:“Anna” , “lastName”:“Smith” },{ “firstName”:“Peter” , “lastName”:“Jones” }]
}

再比如:

[{"name": "情歌","artist": "云汐","url": "https://xingstar520.oss-cn-beijing.aliyuncs.com/%E4%BA%91%E6%B1%90%20-%20%E6%83%85%E6%AD%8C.mp3","cover": "https://xingstar520.oss-cn-beijing.aliyuncs.com/%E6%83%85%E6%AD%8C.png","lrc": "/source/json/云汐-情歌.lrc"},{"name": "青花瓷","artist": "周杰伦","url": "https://npm.elemecdn.com/anzhiyu-music@1.0.4/青花瓷/青花瓷.mp3","cover": "https://y.qq.com/music/photo_new/T002R300x300M000002eFUFm2XYZ7z_2.jpg?max_age=2592000","lrc": "https://npm.elemecdn.com/anzhiyu-music@1.0.4/青花瓷/青花瓷.lrc"}
]

六. JSON函数

使用 JSON 函数需要导入 json 库:import json。

函数描述
json.dumps将 Python 对象编码成 JSON 字符串
json.loads将已编码的 JSON 字符串解码为 Python 对象
json.dump将Python内置类型序列化为json对象后写入文件
json.load读取文件中json形式的字符串元素转化为Python类型
encode将 Python 对象编码成 JSON 字符串
decode将已编码的 JSON 字符串解码为 Python 对象

1. json.dumps

json.dumps 用于将 Python 对象编码成 JSON 字符串。

import jsondata = {'name': 'nanbei', 'age': 18}
# 将Python对象编码成json字符串
print(json.dumps(data))

输出结果为:

{"name": "nanbei", "age": 18}

再如:

import jsondata = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data)
# separators参数用于指定分隔符 indent参数用于指定缩进字符个数 sort_keys参数用于指定是否按照字典排序输出

输出结果为:

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

2. json.loads

json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

import jsondata = {'name': 'nanbei', 'age': 18}
# 将Python对象编码成json字符串
print(json.dumps(data, sort_keys=True, indent=4, separators=(',', ':')))
# 将json字符串解码成Python对象
a = json.dumps(data)
print(json.loads(a))

输出结果为:

{"age":18,"name":"nanbei"
}
{'name': 'nanbei', 'age': 18}

再如:

import jsondata = (1,2,3,4)
data_json = [1,2,3,4]
#将Python对象编码成json字符串
print(json.dumps(data))
print(json.dumps(data_json))#将Python对象编码成json字符串
a = json.dumps(data)
b = json.dumps(data_json)
#将json字符串编码成Python对象
print(json.loads(a))
print(json.loads(b))

输出结果为:

[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]

3. json.dump

将Python内置类型序列化为json对象后写入文件:

import jsondata = {'nanbei':'haha','a':[1,2,3,4],'b':(1,2,3)
}
with open('json_test.txt','w+') as f:json.dump(data,f)

4. json.load

读取文件中json形式的字符串元素转化为Python类型:

import jsondata = {'nanbei':'haha','a':[1,2,3,4],'b':(1,2,3)
}
with open('json_test.txt','w+') as f:json.dump(data,f)with open('json_test.txt','r+') as f:print(json.load(f))

5. encode

Demjson3
demjson3 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。
安装模块:

pip install demjson3

Python encode() 函数用于将 Python 对象编码成 JSON 字符串。

import demjson3  data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]  json = demjson3.encode(data)  
print(json)

6. decode

Python 可以使用 demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。

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

7. 参数说明

参数作用
skipkeys如果为True的话,则只能是字典对象,否则会TypeError错误, 默认False
ensure_ascii确定是否为ASCII编码
check_circular循环类型检查,如果为True的话
allow_nan确定是否为允许的值
indent会以美观的方式来打印,呈现,实现缩进
separators对象分隔符,默认为,
encoding编码方式,默认为utf-8
sort_keys如果是字典对象,选择True的话,会按照键的ASCII码来排序

总结

  1. dump:存入的实例对象object(序列化)
  2. dumps:存入的JSON的字符串数据
  3. load:读取的实例对象object(反序列化)
  4. loads:读取的JSON的字符串数据,转化为Python字典对象

❤️❤️❤️Python完结撒花😊❤️❤️❤️

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

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

相关文章

IOC 概述

一、IOC 概述 控制反转(Inversion of Control,简称 IOC)是一种设计原则,它通过将对象的创建和管理权交给外部容器来实现对象之间的解耦。这种模式使得组件之间的依赖关系变得更加灵活和可维护。在 Spring 框架中,IOC …

恶劣天气下的目标检测新突破:多尺度退化建模与特征融合策略

更多优质内容,请关注公众号:智驾机器人技术前线 1.论文信息 论文标题:Degradation Modeling for Restoration-enhanced Object Detection in Adverse Weather Scenes 作者:Xiaofeng Wang, Xiao Liu, Hong Yang, Zhengyong Wang, …

阿里PAI-ChatLearn:大规模 Alignment高效训练框架正式开源

导读 ChatGPT是OpenAI开发的基于大型语言模型(LLM)的聊天机器人,以其令人惊叹的对话能力而迅速火爆并被广泛采用。ChatGPT 成功背后得益于大型语言模型生成领域的新训练范式:RLHF (Reinforcement Learning from Human Feedback),即以强化学习…

PTA L1-028 判断素数

L1-028 判断素数(10分) 本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于的需要判断的正整数。 …

利用clip模型实现text2draw

参考论文 实践 有数据增强的代码 import math import collections import CLIP_.clip as clip import torch import torch.nn as nn from torchvision import models, transforms import numpy as np import webp from PIL import Image import skimage import torchvision …

滚柱导轨:数控机床高效运行的驱动力

机床制造者最关心的莫过于机床的精度,刚性和使用寿命,对导轨系统的关注甚少。但导轨为机床功能的实现奠定了可靠的基础,各种类型的机床工作部件,都是利用控制轴在指定的导轨上运动。机床设计者根据机床的类型和用途选用各种不同形…

C++ 中 static 关键字

修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。 修饰普通函数,表明函数的作用范围…

Python进阶04-网络编程

零、文章目录 Python进阶04-网络编程 1、计算机网络 网络相关知识请参考计算机网络详解 (1)IP地址的概念 IP 地址就是标识网络中设备的一个地址,好比现实生活中的家庭地址。 (2)IP地址的表现形式 IP 地址分为两类…

Javaweb学习之Vue数据绑定(五)

前期回顾 Javaweb学习之Vue实践小界面(四)-CSDN博客 认识数据绑定 Vue.js 中的数据绑定是一个核心概念,它极大地简化了前端开发中数据与视图(DOM)之间的同步问题。Vue.js 通过其响应式系统实现了数据的双向绑定&…

【Python Web开发】Flask+HTML学习笔记

目录 Flask框架一、安装flask库二、运行一个网页三、库函数及变量 HTML标签语言一、基本格式二、标签2.1 块级标签2.1.1 标题2.1.2 div2.1.3 图片2.1.4 列表2.1.5 表格 2.2 行内标签2.2.1 span2.2.2 超链接2.2.3 输入 2.3 其他标签2.3.1 提交表单 Flask框架 一、安装flask库 …

电阻柜柜体采用不锈钢材质有什么优点

电阻柜柜体采用不锈钢材质有什么优点: 1. **耐腐蚀性**:不锈钢材质具有极好的耐腐蚀性,能有效抵抗各种腐蚀物质的侵蚀,确保设备经久耐用。 2. **美观大方**:不锈钢表面光滑,质感细腻,呈现出大气…

Elasticsearch写入、读取、更新、删除以及批量操作(golang)

目录 1、背景 2、elasticsearch基础操作 2.1 创建es链接客户端 2.2 创建、删除索引 2.3 插入文档 2.3 查询文档 2.4 删除一条文档 2.5 更新文档 2.6 逻辑查询 2.7 滚动查询(批量查询) 2.8 批量插入数据 2.9 批量更新文档 2.10 批量删除文档 3、检索条件设置 4、测…

探索Unity与C#的无限潜能:从新手到高手的编程之旅

在数字创意与技术创新交织的今天,Unity游戏引擎凭借其强大的跨平台能力和灵活的编程接口,成为了无数开发者心中的首选。而C#,作为Unity的官方脚本语言,更是以其面向对象的特性和丰富的库支持,为游戏开发注入了无限可能…

Golang | Leetcode Golang题解之第375题猜数字大小II

题目&#xff1a; 题解&#xff1a; func getMoneyAmount(n int) int {f : make([][]int, n1)for i : range f {f[i] make([]int, n1)}for i : n - 1; i > 1; i-- {for j : i 1; j < n; j {f[i][j] j f[i][j-1]for k : i; k < j; k {cost : k max(f[i][k-1], f[…

关于Scrapy的那些事儿(四)Scrapy Shell

Scrapy Shell launch Scrapy shell 使用如下命令&#xff1a; scrapy shell <url>当运行scrapy shell的时候&#xff0c;它为我们提供了一些功能函数&#xff1a; shelp() :打印可用对象和快捷命令的帮助列表fetch&#xff08;request or url&#xff09;&#xff1a;…

CMake构建学习笔记11-minizip库的构建

准确来说&#xff0c;minizip其实是zlib提供的辅助工具&#xff0c;位于zlib库的contrib文件夹内。minizip提供了更为高级一点的接口&#xff0c;能直接操作文件进行压缩。不过&#xff0c;有点麻烦的是这个工具并没有提供CMake构建的方式。那么可以按照构建giflib的方式&#…

Java开发工程师-匹配性岗位(借鉴性质)

1.匹配性质 技能迁移:Java开发工程师通常具备较强的编程能力、逻辑思维和问题解决能力,这些技能可以迁移到其他领域。行业选择:考虑目前行业趋势以及未来发展方向,Java工程师可以转向大数据、人工智能、云计算等等领域。个人兴趣与职业发展:转行时个人的兴趣和职业发展规划…

1.1量化交易的定义与魅力

Hey&#xff0c;Python高手们&#xff0c;欢迎来到量化交易的世界&#xff01;在这里&#xff0c;我们不谈风花雪月&#xff0c;只谈数字和代码。量化交易&#xff0c;听起来是不是有点像是“用电脑代替人脑做交易”的黑科技&#xff1f;没错&#xff0c;你猜对了&#xff01; …

【JAVA入门】Day28 - 数据结构

【JAVA入门】Day28 - 数据结构 文章目录 【JAVA入门】Day28 - 数据结构一、栈二、队列三、数组3.1 ArrayList 四、链表4.1 LinkedList 五、二叉树5.1 二叉查找树5.2 二叉树的遍历方式5.3 平衡二叉树5.4 平衡二叉树的旋转5.5 平衡二叉树需要旋转的几种情况 六、红黑树6.1 红黑规…

永成防回水防回气装置煤矿毫不犹豫选择

永成防回水防回气装置煤矿毫不犹豫选择&#xff0c;不敢说我们有多好&#xff0c;我们只把简单的事做好&#xff0c;用心服务&#xff0c;因为品质&#xff0c;所以信任。因为信任&#xff0c;所以值得选择。 本防回水防回气装置是一种用于煤矿瓦斯管路爆渣和燃烧时防止回火、…