python 之序列化(pickle模块和json模块)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
‘‘‘
序列化(pickle)和json

1、什么是序列化?
序列化可以把一个对象(比如列表、字典都是对象),通过python特有的机制序列化一下。
也就是当作是以二进制的形式给它加密一下(特殊二进制的方式加密一下),这个过程就是序列化
并且对一个对象序列化(比如类、列表、字典)之后,可以进行反序列化。
‘‘‘

import pickle,json

li = [‘tantianran‘,11,22,‘ok‘,‘jj‘]

‘‘‘
#比如把一个列表序列化一下

dumpsed = pickle.dumps(li) #通过特殊的二进制形式序列化
print dumpsed
print type(pickle.dumps(li)) #查看数据类型后是一个字符串形
#也就是说,将一个列表序列化成了一个字符串形式,而且这个字符串是无规则的

#进行反序列化,反序列化成列表形式
loadsed = pickle.loads(dumpsed)    #把序列化后的数据存储在变量里的这个变量拿过来进行反序列化
print loadsed
print type(loadsed)
‘‘‘

‘‘‘
解析如下:
1、原先是列表,后来被序列化成一个字符串
2、再后来通过一个字符串反序列化成列表
通过pickle序列化的特点:
1、pickle不光可以序列化一个列表,还可以序列化一个类,等等对象
2、序列化之前是什么数据类型,那么反序列化之后就是什么数据类型
3、还可以直接序列化后,保存到文件里,以后读取这个文件,再反序列化成原来的数据类型
4、在一定程度上,也可以说是做到了一个简单加密功能
‘‘‘

#如将列表序列化后保存到文件里
pickle.dump(li,open(‘data.pk‘,‘w‘)) #将列表序列化后存储到文件里

result = pickle.load(open(‘data.pk‘,‘r‘))
print result
print type(result) #查看数据类型

‘‘‘
pickle应用场景
1、python程序和python程序之间数据传输,用序列化的方式传进去
2、通过这种方式实现了两个python程序之间内存数据之间的交互
怎么说呢?两个独立的进程在内存里,内存空间是完全独立的,不能相互访问的。那么两个程序之间
想进行数据交换,就必须得经过序列化的过程。
3、还可以将内存的数据通过序列化后存储到硬盘的文件里(比如游戏进度的保存)
4、socket编程,两台计算机之间传输也还是需要序列化
‘‘‘

‘‘‘
#pickle和json的区别
1、pickle只能在python中用,python自己做的
2、json所有的语言都支持的一种数据格式
3、比如java程序和python程序需要进行数据交换,那么就得用json了
‘‘‘

#json序列化(json和pickle的操作基本一致)
dicts = {‘name‘:‘tantianran‘,‘age‘:25}
res = json.dumps(dicts)
print res

#json序列化保存到文件里
json.dump(dicts,open(‘json_data.jo‘,‘w‘)) #将一个字典序列化后存储到文件里
result = json.load(open(‘json_data.jo‘,‘r‘)) #反序列化成json形式
print result
print type(result) #查看数据类型,就是原来的字典数据类型
时间: 2024-12-19 18:31:24

python 之序列化(pickle模块和json模块)的相关文章

Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块)

Python 入门之 内置模块 -- 序列化模块(json模块.pickle模块) 1.序列化 Python中这种序列化模块有三种: ? json模块 : ? 不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串.(比如Python的一个列表[1, 2, 3]利用json转化成特殊的字符串,然后在编码成bytes发送给php的开发者,php的开发者就可以解码成特殊的字符串,然后在反解成原数组(列表): [1, 2, 3]) ? json序列化只支持部分Python数据结构:dict,l

Python基础第十三天——sys模块、logging模块、json模块、pickle模块

一.sys模块 1.定义: 与python解释器交互的一个模块 2.sys模块常用的方法 (1)sys.argv方法 定义:命令行参数list,第一个元素是程序本身路径 例: import sys print(sys.argv) # sys.argv只是反映当前模块名,用一个列表存着 # 而pycharm软件则给我们自动加上了绝对路径 输出结果:          # 这个结果并不正确,是因为这是pycharm给加上去的 ['C:/Users/William/PycharmProjects/Py

pickle模块和json模块

不要把文件命名为模块名 #pickle模块 序列化 import pickle dic = {'name':'dodo','age':18} print(pickle.dumps(dic))#转成了bytes类型 with open('a.pickle','wb')as f:#存 f.write(pickle.dumps(dic)) #简单方法 pickle.dump(dic,open('b.pickle','wb')) 反序列化 with open('a.pickle','rb')as f:#

第三十五篇 os模块、sys模块、json模块、pickle模块

目录 一.os模块 二.sys模块 三.json模块 dump和load 四.pickle模块 一.os模块 os模块和操作系统交互,主要用于文件操作 import os # test.py文件中 # os.mkdir() 一个路径参数和一个字符串参数.如果有路径参数,则在该路径下创建一个新的文件夹:如果无路径参数,则在当前文件的同级路径下创建一个新的文件夹 os.mkdir('king') # 创建了和test.py文件同级目录下的名为king的文件夹 # os.removedirs() 一个

python 标准模块之json 模块

模块作用 json 通常用于在web 客户端和服务器数据交换,即把字符串类型转换成python 基本数据类型 ,或者将python 基本数据类型转换成字符串类型 常用的方法 json.dumps(obj) # 将python 的基本数据类型转换成字符串 json.loads(obj) # 将字符串序列化成python 的基本数据类型 json.dump(obj) # 将python 的基本数据类型转换成字符串并写入到文件当中 json.load(obj) # 读取文件中的字符串,序列化成pyth

练手小程序用了pandas模块和json模块以及time模块

6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式保存 程序写的过程 先生成功能模块和运行模块 再写功能模块中用到的固定的文件目录全放在setting.py文件中 与商品交互全放在shop.py中 与用户交互全放在user.py中 一些返回界面延迟动画全放在辅助模块中 1.程序设计目录 2.run.py from core.src import r

模块讲解----json模块(跨平台的序列化与反序列化)

一.json的特点 1.只能处理简单的可序列化的对象:(字典,列表,元祖) 2.json支持不同语言之间的数据交互:(python  -  go,python - java) 二.使用场景 1.玩游戏的时候存档和读取记录. 2.虚拟机挂起.保存或者恢复.读档的时候. 三.语法: 1.简单的数据类型: 1 1.在内存中进行转换: 2 import json 3 #py基本数据类型转换字符串: 4 r = json.dumps([11,22,33]) 5 #li = '["alex",&q

什么是序列化, pickle, shelve(春节再整理), json, configparser(春节再整理)模块

一序列化. 二.pickle模块. 三.json模块. 一.序列化. 什么是序列化:在我们存储数据或网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式,这个过程叫序列化,不同的序列化,结果也不同,但是目的是一样的,都是为了存储和传输. 在python 中有三种序列化方案:1.pickle   2.shelve  3.json 二.pickle模块. pickle 模块把我们的python对象变成bytes写入到文件中,所以着东西不是给人看的,给机器看的. pick

python 导入json模块的用法

json用于字符串,和 python数据类型间进行转换,json模块有四个功能,dumps,dump,loads,load. json 用法 json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串 import json js_str=json.dumps(data) print('js_str') json.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件 文章来自 http://www.96net.com.cn 原文地址:https://www.