学习Python的第20天

 1.序列化模块

定义:序列化就是字符串,序列化就是把其它数据类型转化成json字符串的过程。

什么是反序列化:把json转化成其它数据类型的过程就是反序列化。

1.1.把字典转化成json格式的数据

json.dumps---->序列化用的   json.loads------》反序列化
json.dump------》序列化,它可以直接写入文件      json.load-----------》它能够读取文件,然后自动反序列化
print(json.dumps(d), type(json.dumps(d)))  # <class 'str'> {"username": "kevin", "age": 18}
## json格式的数据特点:字典里面的都变成了双引号
"""通过网络传输的数据一定是二进制"""
# 反序列化:java给你发送了数据------------》
res = b'{"username": "kevin", "age": 18}'

 1.2.把二进制数据转为Python中得字典

print(res.decode('utf-8'), type(res.decode('utf-8'))) # {"username": "kevin", "age": 18}

s1 = res.decode('utf-8') # 把字符串格式的json转为抛Python中得字典

print(json.loads(s1), type(json.loads(s1)))
d1 = json.loads(s1)
print(d1['username'])

"""字节类型------》字符串-----------》字典"""
 +-------------------+---------------+
    | Python            | JSON          |
    +===================+===============+
    | dict              | object        |
    +-------------------+---------------+
    | list, tuple       | array         |
    +-------------------+---------------+
    | str               | string        |
    +-------------------+---------------+
    | int, float        | number        |
    +-------------------+---------------+
    | True              | true          |
    +-------------------+---------------+
    | False             | false         |
    +-------------------+---------------+
    | None              | null          |
    +-------------------+---------------+

 2.pickle模块

定义:pickle的使用方法和json一样,都用四种同样的方法使用 。​能够被序列化的数据类型不一样,json能够序列化的数据类型是有限的有:dict list, tuple str  int, float True False  None。他的优秀在可以序列化全部数据类型但是不好的在只能在python中使用,且被序列化的结果是二进值的。

# d = {"a":1, 'b':2}
l = [1 ,2 ,3 ,4]
import pickle
# print(pickle.dumps(d)) # b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x01a\x94K\x01\x8c\x01b\x94K\x02u.'
print(pickle.dumps(l)) # b'\x80\x04\x95\r\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03K\x04e.'
res = pickle.dumps(l)
print(pickle.loads(res))


# with open('a.txt', 'wb') as f:
#     pickle.dump(l, f)

with open('a.txt', 'rb') as f:
    print(pickle.load(f))

3.hashlib模块

3.1定义

什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,'把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)

3.2如何使用hashlib模块

1. 先指定使用的加密算法:MD5 sha系列 sha1 sha128 sha256等
m = hashlib.md5() # 加密数据的时候,使用的是md5算法

# 2. 指定需要加密的数据
# m.update(b'123456')
m.update(b'1234567894321424234234234324234234234234234324')  # 323fda2da07ce11869e8c3737f36b96b
"""不管你需要加密的数据有多长,那么,得到的加密串结构都是固定长度的,前提是使用同一种算法"""
# 3. 怎么取出加密之后的结果呢
print(m.hexdigest()) # e10adc3949ba59abbe56e057f20f883e
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值