当前位置:
首页 > temp > python入门教程 >
-
json模块(序列化模块
1、什么是序列化和反序列化
序列化指的是把内存的数据类型转化成一个特定格式的内容,该格式内容可以用来存储或者传输给其他平台使用。
反序列化就是把特定格式的数据在转化为内存中原来的数据类型。
2、为什么要序列化
序列化得到结果=>特定的格式的内容有两种用途:
1、可用于存储=》用于存档
2、传输给其他平台使用=》跨平台数据交互
注意:
对于第一种用途的特定格式:这个格式可以是一种专用的格式=》pickle模块
对于第二种用途的特定格式:这个格式应该是一个通用的、能被所有语言识别的格式=》json模块
3、json如何序列化和反序列化
(1)序列化与反序列化的基本格式:
import json #导入json模块
# 序列化json.dumps
res = [11,'aa',True,False]
json_res = json.dumps(res) # 将一个列表序列化为一个字符串类型
print(json_res,type(json_res))
# 结果为:[11, "aa", true, false] <class 'str'>
# 注意:原先列表里的字符串序列化之后在json中是""表现的,True,False都是会变成小写模式!!
# 反序列化json.loads
json_res1 = json.loads(json_res)
# 将一个字符串对象反序列化为原有的格式,注意loads里面必须是一个字符串格式,但是在pycharm2.7和3.6版本以后,load和loads里面可以是bytes类型!!!
print(json_res1,type(json_res1))
# 结果为:[11, 'aa', True, False] <class 'list'>
(2)将序列化结果写入文件并将结果取出然后反序列化的复杂方法
import json
dict = {'username':'zhang','password':'123'}
json_res = json.dumps(dict)
with open('test.txt',mode='wt',encoding='utf-8') as f:
f.write(json_res) # 新建一个文件,并将序列化的结果写入文件
with open('test.txt',mode='rt',encoding='utf-8') as f:
res = f.read() #把序列化结果的文件进行读取操作
res1 = json.loads(res)
(3)将序列化结果写入文件并将结果取出然后反序列化的简单方法
with open('test.txt',mode='wt',encoding='utf-8') as f:
json.dump({'username':'zhang','password':'123'},f)
总结:dump的用法:
第一个参数为需要序列化的数据
第二个参数为调用了一个f.write()方法对序列化的数据进行写入
with open('test.txt',mode='rt',encoding='utf-8') as f:
l = json.load(f)
总结:load的用法:
就是将f这个文件全部读取出来,然后在进行反序列化,一步到位!
4、前端与后端json数据的交互
在python中:一个字符串经过dumps之后可以序列化成json字符串;一个json字符串通过loads反序列化可以得到python的字符串;
在jQuery中:一个字符串可以通过stringfy的方法的到json的字符串;通过parse的方法可以拿到jQuery的字符串;
前端数据=stringfy=>json字符串=传到后端==>loads 反序列化的到python 数据
后端数据=dumps>json字符串传到前端====>parse 发序列化得到前端数据;
出处:https://www.cnblogs.com/suncolor/p/16557875.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数