VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 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


相关教程