模块 序列化模块:json pickle
模块:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀
模块的形象:
内置模块:安装Python解释器的时候一起安装上的
第三方模块(扩展模块):需要自己安装
自定义模块:自己写的py文件
序列化模块 json 与pickle
序列的对象:列表,元组,字符串,bytes
序列化的定义:把一个数据类型转换成字符串,bytes类型的过程
为什么要把数据类型序列化
当你需要把一个数据类型存储在文件中的时候
当你需要把一个数据类型通过网络传输的时候
使用eval() 有风险,所以一般情况下不能使用
json模块:将少量的数据类型转化成字符串的形式
应用场景:
在网络操作中,以及多语言环境中,要传递字典,数字,字符串,列表等简单的数据类型的时候使用。
优点:对于所有语言都通用
缺点:只支持数字,字符串,列表,字典(key值必须是可hash的,即不可变的数据类型)的数据类型
import json
stu = {'name':'何青松','sex':'male'}
ret = json.dumps(stu,ensure_ascii=False) #序列化的过程
#ensure_ascii=False 希望序列化的中文能以中文的形式被现实并且写到文件中
print(ret,type(ret)) #{"name": "何青松", "sex": "male"} <class 'str'> print(stu,type(stu)) #{'name': '何青松', 'sex': 'male'} <class 'dict'> l1 = json.loads(ret) #反序列过程 print(l1,type(l1)) #{'name': '何青松', 'sex': 'male'} <class 'dict'>
import json
方法 dumps() 序列化 loads()反序列化
dumps() dic--->str 序列化方法
loads(str) str----> dic/list 反序列化方法
dump(dic/lis,f) dic/list------->文件,序列化方法
load(f) 文件中-----》dic/list 反序列化方法。可以进行多次dump进入文件中的数据,但是load会报错
参数:ensure_ascii=False 希望序列化的中文能以中文的形式被显示并且写入文件中
pickle 将数据类型转化成bytes类型
与json方法相同,只是转化类型不同
dump与load 操作文件的时候必须以+b打开
在load的时间,如果这个要被load的内容不再内存中,程序会报错的
pickle支持多次dump和多次load (load的时候需要进行异常处理)
import pickle
class Course:
def __init__(self,name,price):
self.name = name
self.price = price
python = Course('python',29800)
linux = Course('linux',25800)
mysql = Course('mysql',18000)
def my_dump(course):
with open('pickle','ab') as f:
pickle.dump(course,f)
my_dump(python)
my_dump(linux)
my_dump(mysql)
with open('pickle','rb') as f:
while True:
try:
content = pickle.load(f)
print(content.name)
except EOFError:
break
模块 序列化模块:json pickle的更多相关文章
- Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解
把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...
- Python模块:shutil、序列化(json&pickle&shelve)、xml
shutil模块: 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fscr,fdst [, length]) # 将文件内容拷贝到另一个文件中 import shu ...
- 常用模块(random,os,json,pickle,shelve)
常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...
- 0420模块 序列化模块 hashlib模块
复习:内置方法 __len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象 ...
- 模块(序列化(json&pickle)+XML+requests)
一.序列化模块 Python中用于序列化的两个模块: json 跨平台跨语言的数据传输格式,用于[字符串]和 [python基本数据类型] 间进行转换 pickle python内置的数据 ...
- python序列化: json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )
1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...
- python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)
1.昨日内容回顾 1.正则表达式 # 正则表达式 —— str # 检测字符串是否符合要求 # 从大段的文字中找到符合要求的内容 1).元字符 #. # 匹配除换行 ...
- day6_python序列化之 json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- 022.Python模块序列化模块(json,pickle)和math模块
序列化模块 一 序列化模块 pickle 1.1 基本认识 序列化:把不能够直接存储的数据变成可存储的过程就是序列化 反序列化:把储存的数据拿出来恢复成原来的数据类型就是反序列化 例如,一个文件不可 ...
随机推荐
- 帆软报表(finereport)控件背景色更改
setTimeout(function() { $('.fr-trigger-btn-up').css({ "background-color": "#003399&qu ...
- 07.python语法入门--流程控制
分支结构 什么是分支结构 为什么要用分支结构 如何使用分支结构 if语法 if应用案例 循环结构 什么是循环结构 为什么要用循环结构 如何使用循环结构 while循环语法 while循环应用案例 fo ...
- Solution -「ARC 082D」Sandglass
\(\mathcal{Description}\) Link. 一个沙漏内共 \(Xg\) 沙,令初始时上半部分为 A,下半部分为 B.沙漏在 \(r_1,r_2,\cdots,r_n\) 时 ...
- Lesson11——Pandas去重函数:drop_duplicates()
pandas目录 "去重"通过字面意思不难理解,就是删除重复的数据.在一个数据集中,找出重复的数据删并将其删除,最终只保存一个唯一存在的数据项,这就是数据去重的整个过程.删除重复数 ...
- ThinkPHP5中使用第三方类库
在TP5中有两种方式使用第三方类库,如果类库支持composer方式安装那就很方便了,使用composer安装的类库存储在Vendor目录下,可以直接使用,以phpmailer为例,使用如下命令安装: ...
- Node.JS学习——学习笔记
Node.JS--学习笔记 2020年02月23日11:52:01 我打算自学NodeJS-通过阅读NodeJS官网来完成. https://nodejs.org/dist/latest-v13.x/ ...
- Redis_RDB持久化之写时复制技术的应用
背景: 最近生产环境中某个Set的Redis集群经常出现短暂的内存降低现象,经过查看日志是因为在RDB持久化所造成的内存突降(日志中:RDB: 4929 MB of memory used by co ...
- RFC3918聚合组播吞吐量测试——网络测试仪实操
一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...
- C#方法重载(overload)、重写(覆盖)(override)、隐藏(new)
重载 同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同.这样才能通过传递不同的参数来决定到底调用哪一个.而返回值类型不同是不能构成重载的. 作用: 重载必须发生在一个 ...
- 常用邮箱POP3和SMTP服务器 设置
转至:https://blog.csdn.net/zjfei/article/details/4757424?spm=1001.2101.3001.6661.1&utm_medium=dist ...