1、json和pickle

json用于字符串和Python数据类型间进行转换
pickle用于python特有的类型和python的数据类型间进行转换
json和pickle均提供了四种方法dumps,dump,loads,load

##json
dumps() ##转换成字符串
loads() ##将json编码的字符串再转换为python的数据结构
dump() ##转换成字符串并存存储到文件中
load() ##从数据文件中读取数据,并将json编码的字符串转换为python的数据结构 >>> print(json.dumps(['aa', 'bb', 'cc']))
["aa", "bb", "cc"]
>>> print(json.loads('["aa", "bb", "cc"]'))
['aa', 'bb', 'cc'] ##pickle
dumps() ##将数据通过特殊的形式转换为只有python语言认识的字符串
loads() ##将pickle数据转换为python的数据结构
dump() ##将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
load() ##从数据文件中读取数据,并转换为python的数据结构 >>> print(pickle.dumps(['aa', 'bb', 'cc']))
b'\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.'
>>> print(pickle.loads(b'\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.'))
['aa', 'bb', 'cc']

2、random

random.random()           ##0~1之间的随机小数
random.uniform(1,3) ##1~3之间的随机小数
random.randint(1,5) ##[1,5]之间的随机整数
random.randrange(1,10,2) ##[1,10) 之间随机奇数,间隔为2的数
random.choice([1,'',[4,5]]) ##随机选择一个返回
random.sample([1,'',[4,5]],2) ##随机选择多个返回,返回的个数为函数的第二个参数
random.shuffle([1,3,5,7,9]) ##打乱列表顺序 ##返回验证码
import random def v_code(): code = ''
for i in range(5): num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)]) return code print(v_code())

3、hashlib

hashlib提供了常见的摘要算法,如MD5,SHA1等等。

##md5计算
md5 = hashlib.md5("key".encode("utf8")) ##可以添加秘钥,秘钥可以是用户id,这样就算密码相同,加密后的md5也是不一样的
md5.update(b'love fly')
print(md5.hexdigest()) ##SHA1
sha1 = hashlib.sha1("key".encode("utf8"))
sha1.update(b'love fly')
print(sha1.hexdigest()) ##计算MD5
>>> import hashlib
>>> md5 = hashlib.md5()
>>> md5.update(b'love fly')
>>> print(md5.hexdigest())
61976ec704dbce25ccb37ecacef1e4d6 ##如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的
>>> import hashlib
>>> md5 = hashlib.md5()
>>> md5.update(b'love')
>>> md5.update(b' fly')
>>> print(md5.hexdigest())
61976ec704dbce25ccb37ecacef1e4d6

4、collections

ollections是Python内建的一个集合模块,提供了许多有用的集合类,是python对默认数据结构的一种补充

##namedtuple是一个函数,它用来创建一个自定义的元组对象,并且规定了元组元素的个数,并可以用属性而不是索引来引用元组的某个元素。
>>> from collections import namedtuple
>>> colltuple = namedtuple('colltuple', ['x','y'])
>>> col = colltuple('yong','fly')
>>> col.x
'yong'
>>> col.y
'fly'
在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。
1.namedtuple: 生成可以使用名字来访问元素内容的tuple
2.deque: 双端队列,可以快速的从另外一侧追加和推出对象
3.Counter: 计数器,主要用来计数
4.OrderedDict: 有序字典
5.defaultdict: 带有默认值的字典 ##deque: list插入和删除元素很慢,数据量大的时候,插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈。
>>> from collections import deque
>>> q = deque(['a','b','c'])
>>> q.append('d') ##默认添加列表最后一项
>>> q.appendleft('e') ##添加到列表第一项
>>> q
deque(['e', 'a', 'b', 'c', 'd'])
>>> q.pop() ##默认删除列表最后一个元素
'd'
>>> q.popleft() ##删除列表的第一个元素
'e'
>>> q
deque(['a', 'b', 'c']) ##defaultdict使用字典时,如果引用的Key不存在,就会抛出 KeyError,如果希望key不存在时,返回一个默认值,就可以用 defaultdict.
X=defaultdict(lambda: 'N/A')
##OrderedDict有序字典的应用。OrderedDict 的有序性是按照插入的顺序,而不是KEY的顺序。
##Counter简单的计数器,例如,统计字符出现的个数。

Python常用模块之json、pickle、random、hashlib、collections的更多相关文章

  1. python常用模块之json、pickle模块

    python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...

  2. Python常用模块sys,os,time,random功能与用法,新手备学。

    这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...

  3. python常用模块之json和pickle模块

    json模块 json.dumps     将 Python 对象编码成 JSON 字符串 json.loads       用于解码 JSON 数据.该函数返回 Python 字段的数据类型. pi ...

  4. Python常用模块之json模块

    常用模块: 一个Python文件就是一个模块 import xxx 1. 标准模块,Python自带的,如time/random 2. 第三方模块,如连接mysql,需要安装 3. 自己写的Pytho ...

  5. Python常用模块之json

    本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. SO ...

  6. Python——常用模块(time/datetime, random, os, shutil, json/pickcle, collections, hashlib/hmac, contextlib)

    1.time/datetime 这两个模块是与时间相关的模块,Python中通常用三种方式表示时间: #时间戳(timestamp):表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. ...

  7. Python 常用模块(2) 序列化(pickle,shelve,json,configpaser)

    主要内容: 一. 序列化概述 二. pickle模块 三. shelve模块 四. json模块(重点!) 五. configpaser模块 一. 序列化概述1. 序列化: 将字典,列表等内容转换成一 ...

  8. python常用模块之sys, os, random

    一. sys模块 1. 作用: sys模块是与python解释器交互的一个接口 2. 具体使用 1. sys.argv 获取当前正在执行的命令行列表, 第一个为程序本身路径 print('file n ...

  9. json pickle shelve hashlib collections time

    import json # Json模块提供了四个功能:dumps.dump.loads.load dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = js ...

随机推荐

  1. JavaScript基础(String)

    字符串 String 1.连接字符串 数字与字符串相加,为字符串 9+"9"; 2.字符串的长度 "abc".length; 3.从字符串中获取单个字符(索引下 ...

  2. css3轮播渐显效果 2016/11/29

    css3因为其兼容性的问题,被我忽略很久,这次正好做到一个轮播渐显的效果,想了想,正好复习下css3的相关内容,废话不多说,直接上代码. <ul class="cb-slideshow ...

  3. win10 MySQL8.0 zip包安装及问题解决

    1.在官网下载zip包 https://dev.mysql.com/downloads/mysql/ 2.将zip包解压到自己的工作目录中 3.配置环境变量 1)添加环境变量 MYSQL_HOME E ...

  4. 注解实现AOP

    package com.dch.service.aop; import java.text.SimpleDateFormat; import java.util.Arrays; import java ...

  5. IOS微信浏览器点击事件不起作用问题

    问题: $(document).on("click",".btn",function(){alert("1")}); 在微信浏览器上点击不起 ...

  6. js中各个排序算法和sort函数的比较

    js中要实现数据排序,其实只需要用sort函数就能很好的满足了,但是我今天想知道他和其他排序算法的区别,比如耗时呀等.测了一组数据如下: // ---------- 一些排序算法 Sort = {} ...

  7. 用C#实现工资计算公式动态编写

    1,工资计算公式 每一个企业都一定会用到工资计算,发工资是一件非常神圣的事情,而计算工资就是一项非常重要的工作.Excel有非常强大的公式功能,帮助了很多财务人员计算工资,但如果企业的人数比较多,而且 ...

  8. 使用putty远程登录Ubuntu时,报Network error:Connection refused错误

    putty远程登录Ubuntu,弹出Network error:Connection refused的错误提示框,就是因为Ubuuntu没有安装ssh服务.执行命令: sudo apt-get ins ...

  9. WebLogic配置与部署

    一.创建域: 第一步,选择“开始菜单”-> “Oracle WebLogic”-> “WebLogic Server 10gR3” -> “Tools”-> “Configur ...

  10. monkeyrunner之安卓开发环境搭建(二)

    在上一篇文章-安卓开发环境搭建中,我们创建并启动了eclipse自带的安卓模拟器,该模拟器不仅启动慢,而且在使用过程中的反应速度也是出奇的差,经常出现卡机现象.为了解决这种现象,因此,我们又寻找到了更 ...