Python9-模块2-序列化-day20】的更多相关文章

运行错误:_pickle.PicklingError: Can't pickle <function <lambda> at 0x000002BAAEF12F28>: attribute lookup <lambda> on __main__ failed 代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- import random, time, queue from multiprocessing.manager…
认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要…
json import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 print(type(str_dic),str_dic) #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"} #注意,json…
python--(常用模块-2序列化) 一.序列化: 把对象打散成bytes或者字符串. 方便存储和传输 序列化 把bytes或者字符串转换回对象. 反序列化 # dumps 序列化. 把对象转化成bytes# loads 反序列化. 把bytes转化成对象# dump 序列化. 把对象转化成bytes并写入文件# load 反序列化.把文件中的bytes读取.转化成对象 二.pickle(比较重要) 把python中所有的对象都可以转化成bytes.进行存储和传输 # import pickl…
主要内容: 一. 序列化概述 二. pickle模块 三. shelve模块 四. json模块(重点!) 五. configpaser模块 一. 序列化概述1. 序列化: 将字典,列表等内容转换成一个字符串的过程就叫做序列化. 2. 为什么要把其他数据类型转换成字符串? (1)能够在网络上传输的只能是bytes (2)能够存储在文件里的只有bytes和str 3. 序列化的目的: (1)以某种存储形式使自定义对象持久化 (2)将对象从一个地方传递到另一个地方 (3)使程序更具维护性4. 反序列…
目录: 生成器 迭代器 模块 time 序列化 反序列化 日志 一.生成器 列表生成式: a = [1,2,3,3,4,5,6,7,8,9,10] a = [i+1 for i in a ] print(a) a = [i*1 if i > 5 else i for i in a] print(a) 生成器:generator 不能事先把元素全部加载到内存,可以是边使用边生成的方式来依次获取元素: 生成器的使用方法: 列表生成式生成的是列表: 将列表生成器中的[]改成()就成为了一个生成器: 示…
今天在学习到廖老师Python教程的分布式进程时,遇到了一个错误:_pickle.PicklingError: Can't pickle <function <lambda> at 0x000001710FDC2EA0>: attribute lookup <lambda> on __main__ failed(pickle模块不能序列化lambda函数) 代码如下: #!/usr/bin/env python # _*_ coding:utf-8 _*_ import…
Python模块02/序列化/os模块/sys模块/haslib加密/collections 内容大纲 1.序列化 2.os模块 3.sys模块 4.haslib加密 5.collections 1.序列化 1.1 什么是序列化 # 什么是序列化 -- json 序列化模块就是将一个常见的数据结构转化成一个特殊的序列,并且这个特殊的序列还可以反解回去.它的主要用途:文件读写数据,网络传输数据. # lit = [1,22,3,3,45] # [1,22,3,3,45] # s_lst = str…
一.序列化模块 Python中用于序列化的两个模块: json     跨平台跨语言的数据传输格式,用于[字符串]和 [python基本数据类型] 间进行转换 pickle   python内置的数据传输格式,多用于二进制形式,用于[python特有的类型] 和 [python基本数据类型]间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.load #pickle.dumps将数据通过特殊的形式转…
import sysprint(sys.version) #查看当前pycharm版本print(sys.path )#返回模块的搜索路径print(sys.platform )#返回操作系统的版本print(sys.argv ) #命令行参数List,第一个元素是程序本身路径print(sys.exit(0) ) #退出程序,正常退出时exit(0),错误退出sys.exit(1)序列化模块 json功能 Json模块提供了四个功能:dumps.dump.loads.load import j…
序列化 什么是序列化 序列化是将字典.列表等数据类型转化成一个字符串的过程 序列化的目的 1. 以某种存储形式使自定义对象持久化(存储) 2. 将对象从一个地方传递到另一个我地方(传输) 3. 使程序更具维护性 json模块 json是很多语言通用的一种数据标准,json可以转化的数据类型包括:str   int   bool   dict   list(tuple)   None json模块有四种方法:dumps, loads, dump, load dumps和loads 处理列表 imp…
一.os模块os.system("bash command") 运行shell命令,直接显示 os.popen("bash command).read() 运行shell命令,获取执行结果 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.path os.path.abspath(path) 返回path规范化的绝对路径 os.path…
---什么是序列化(picking)? 我们把变量从内存中变成可存储或传输的过程称之为序列化. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling. 举例:大家应该都玩过魔兽争霸,应该知道该游戏有一个存档的功能,我每次不想玩得时候就可以存档,然后再玩得时候我们根本不需要重新开始玩,只需要读档就可以了.我们现在学习的事面向对象的思想,那么在我们眼中不管是我们的游戏角色还是游戏中的怪物.装备…
什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思. 为什么要序列化? 1:持久保存状态 需知一个软件/程序的执行就在处理一系列状态的变化,在编程语言中,'状态'会以各种各样有结构的数据类型(也可简单的理解为变量)的形式被保存在内存中. 内存是无法永久保存数据的,当程序运行了一段时间,我们断电或者重启程序,内存中关于这个程…
一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据流中接收) 1.函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error mes…
一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.removedirs('dirname1') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') # 生成单级目录:相当于shell中mkdir dirname os.rmdir('dirname') # 删除单级空目录,若目录不为空则无法…
5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 5.1 使用sys.argv进行登录判断,跳过 i/o阻塞 #使用sys.argv进行登录判断,跳过 i/o阻塞 import s…
一.模块 1.模块简介 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用python标准库的方法. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 2.模块的引入 在Python中用关键字import来引入某个模块,比如要引用模…
一.time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=8, tm_min=4, tm_sec=32, tm_wday=1, tm_yday=220, tm_isdst=0)像这样的就是结构化时间 1 import time 2 # 对象:对象.方法 3 # -------------------------…
sys模块是与python解释器交互的一个接口: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit() sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称sys.modules sys.modules是一个全局字典,该字典是python启动后就加载在内存中.每…
1. namedtuple 命名元组->类似创建了一个类 from collections import namedtuple p = namedtuple("Point",["x","y","z"]) p1 = p(3,4,5) print(p1) # 结果 Point(x=3, y=4, z=5) 2. os模块 主要是针对操作系统的 一般用来操作文件系统 os.makedirs()可以一次性创建多级目录 os.rm…
一.什么是序列化(pickling): 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化. 序列化可以持久保存状态, 不会根据计算机断电或者重启程序,而使得之前的数据状态丢失.可以在下次程序执行时 根据之前执行的状态继续执行. 序列化之后可以跨平台数据交互.就打破了平台/编程语言差异化带来的限制,数显了跨平台数据 交互. 简单的说就是: 序列化: 内存中的数据结构--->转成一种中间格式(字符串) --->存到文件中  反过来,把变量内容从序列的对象重新读到内存里称之为反序列化(u…
4.random -- 随机模块 a-z:97 ~ 122 A-Z :65 ~ 90 import random #浮点数 print(random.random())#0~1,不可指定 print(random.uniform(1,10))#1~10#须指定 #整数 print(random.randint(1,10))[1~10]整数,闭区间 print(random.randrange(1,5,2))#(起始,终止,步长) list1 = [1,2,3,4,5] print(random.…
一.解析模块 为什么要配置解析模块? 1)drf给我们通过了多种解析数据包方式的解析类. 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析. 3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图来,让它们可以按照配置规则选择性解析数据. 源码入口 # APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去 ​ # 获取解析类 parsers=s…
sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 示例: import sys count = : print(count) : sys.exit() count += print('ending')结果:12345678 import sys print(sys.path) 结果: ['C:\\Users\\Administra…
序列化 : 把其他的数据类型转换成 字符串或者bytes 序列 : 列表.元组.字符串.bytes 为什么要把其他数据类型转换成字符串? 能够在网络上传输的只能是bytes,能够存储在文件里的只有bytes和str 网络传输过程 字典 -> 字符串 -通过网络去传输-> 字符串 -> 字典 序列化 字典 -> 字符串,可以直接使用str()str_dic = str([1,2,3])print(str_dic,type(str_dic))输出:[1, 2, 3] <class…
序列化 """ 序列--字符串 序列化--其他数据类型转化为字符串数据类型 反序列化--字符串转化为其他数据类型 """ json模块 """ json 五星好评 数字 字符串 列表 字典 元组 优点:通用的序列化格式 缺点:只有很少的一部分数据类型-->字符串 """ 1,dumps和loads import json # dumps和loads 操作内存中的数据 dic = {…
[知识点] 1.时间模块: (1)时间戳时间,格林威治时间,float数据类型 英国伦敦的时间:1970.1.1     0:0:0 北京时间:1970.1.1     8:0:0 (2)结构化时间,时间对象 时间对象  能够通过.属性名来获取对象中的值 (3)格式化时间,字符串时间,str数据类型 可以根据你需要的格式来显示时间 import time # 1.时间戳时间 格林威治时间,float数据类型(给机器用的) print(time.time()) # 2.格式化时间 print(ti…
复习 """ 1.接口:url+请求参数+响应参数 Postman发送接口请求的工具 method: GET url: https://api.map.baidu.com/place/v2/search params: ak: 6E823f587c95f0148c19993539b99295 region: 上海 query: 肯德基 output: json 2.restful接口规范 https://api.baidu.com/v1/books?ordering=-pri…
一.collections模块 1.其他数据类型 在内置数据类型(str.dict.list.tuple.set)的基础上,collections模块还提供了了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和OrderedDict. 2.namedtuple(具名元组) ①.用具名元组表示一个点坐标 from collections import namedtuple Point = namedtuple('Point',['x','y']) p =…