模块:一个模块就是一个包含了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的更多相关文章

  1. Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解

    把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...

  2. Python模块:shutil、序列化(json&pickle&shelve)、xml

    shutil模块: 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fscr,fdst [, length])   # 将文件内容拷贝到另一个文件中 import shu ...

  3. 常用模块(random,os,json,pickle,shelve)

    常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...

  4. 0420模块 序列化模块 hashlib模块

    复习:内置方法 __len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象 ...

  5. 模块(序列化(json&pickle)+XML+requests)

    一.序列化模块 Python中用于序列化的两个模块: json     跨平台跨语言的数据传输格式,用于[字符串]和 [python基本数据类型] 间进行转换 pickle   python内置的数据 ...

  6. python序列化: json & pickle & shelve 模块

    一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...

  7. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

  8. python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)

    1.昨日内容回顾 1.正则表达式     # 正则表达式 —— str           # 检测字符串是否符合要求     # 从大段的文字中找到符合要求的内容 1).元字符 #. # 匹配除换行 ...

  9. day6_python序列化之 json & pickle & shelve 模块

    一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...

  10. 022.Python模块序列化模块(json,pickle)和math模块

    序列化模块 一  序列化模块 pickle 1.1 基本认识 序列化:把不能够直接存储的数据变成可存储的过程就是序列化 反序列化:把储存的数据拿出来恢复成原来的数据类型就是反序列化 例如,一个文件不可 ...

随机推荐

  1. ROS::message_filters中的一个报错(mt::TimeStamp……)

    『方便检索』 ros::Time msg_time = mt::TimeStamp<typename mpl::at_c<Messages, i>::type>::value( ...

  2. Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享

    一,引言 Azure File Share 是支持两种认证方式的! 1)Active Directory 2)Storage account key 记得上次分析的 "Azure File ...

  3. mysql数据库怎么存入emoji表情

    第一步 设置数据库字符编码为utf8mb4_general_ci  设置相应表字段字符编码为utf8mb4_general_ci 第二步 设置my.cnf增加以下配置信息 [client] defau ...

  4. 阿里云人脸1:N搜索开源版-Java版(文末附开源地址)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

  5. Harbor2.2.4在CentOS7.9安装、部署

    CentOS7.9基础环境配置 https://www.cnblogs.com/uncleyong/p/15471002.html 直接从网盘获取配置好的环境 修改:vim /etc/hosts 12 ...

  6. 目前数据可视化工具排名如何?好用的BI可视化软件

    数据可视化用专业术语来就是通过视觉的方式向人类展示数据,这种在文本基础上的图表即简单又实用,而且相关性.趋势分析都非常明确,也非常可靠,通过图表一目了然.用通俗的话说就是画一张图表,将数据以比例的方式 ...

  7. 为什么DRAM采用地址复用技术?为什么SRAM不采用地址复用技术?

    行列地址复用:比如你的存储器容量是16bit,那么可以将这16个比特组织成一个4*4的矩阵,为了找到某个你想要找的bit,比如第1行第2列的那个bit.你先发送二进制的01,表示要找的数据在第1行:接 ...

  8. 【Windows身份认证】NTLM

    前言 前几天自己在学习域渗透时突然对Windows的身份认证机制产生了兴趣,但看了好几天自己还是懵懵懂懂,期间自己看了许多师傅的优质文章,也做了一些例子的复现,于是有了这篇文章,可以说是自己的笔记或总 ...

  9. 彻底关闭 win10家庭版 杀毒软件windows defender

    下面开始今天的教程, 第一步,我们先在windows安全中心将相关的设置关闭一下,具体方法如下: 我们右键点击windows 10开始菜单,点击"设置", 点击"设置&q ...

  10. AcWing 288. 休息时间

    传送门 思路: 考虑DP,设dp[i][j][1]为牛在前小时休息j个小时且第i个小时休息时,回复的最多体力:dp[i][j][0]为牛在前小时休息j个小时且第i个小时没有休息时,回复的最多体力. 可 ...