• day23 笔记


    什么是序列化
    序列化指的是把内存的数据类型转换成一种特定的格式内容,该格式内容可用于存储或者传输给其他平台使用

    内存中的数据类型----》序列化------》特定的格式(json格式或者pickle格式)
    内存中的数据类型《----反序列化《------特定的格式(json格式或者pickle格式)
    eval源码

    为何要用序列化
    通过序列化得到的格式用于存储和传输使用
    1.存储 :保存程序此刻的运行状态,存档
    2.传输使用:跨平台数据交互


    强调:
    针对用途1的特定格式应该是一种专用的格式 pickle 只有python可以使用
    针对用途2的特定格式应该是一种通用的、能够被所有语言识别的格式 json 提取了多种语言共有的类型
    json可以用于存档但不推荐
    如何序列化和反序列化
    json.dumps序列化
    json.loads反序列化
    json验证:json格式兼容的是所有语言通用的数据类型,不能识别某一种语言所独有的数据类型
    json强调:所有的格式都是json格式不是python格式,在python3.5中b类型是不被允许的其他版本的可以
    pickle模块: p2与p3有一个兼容性问题
    pickle.dumps() 转化为二进制模式
    pickle.loads()反解
    猴子补丁:猴子补丁的核心就是用自己的代码替换所用模块的源代码
    configparser模块:查找配置文件
    config.sections()查看所有的标题
    config.options()查看所有key=value的形式的key值
    config.items()查看所有key = value的键值对,返回元组形式
    config.get(section,key)取value
    config.getint()取得值是int形式
    config.getfloat()取得的值时float形式
    hashlib模块:
    什么是哈希:hash是一类算法,该算法接受传入的内容,经过运算得到一串哈希值
    hash的特点:
    1.只要传入的内容一样,得到的hash值必然一样
    2.不能由hash值反解成内容
    3.只要是有的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的
    hash的用途:用于加密特点2,文件完整性的校验特点1、3
    如何用?
    1.import hashlib
    m = hashlib.md5()
    m.update("hello".ecnode("utf-8"))
    print(m.hexdigest())
    注意:把一段很长的数据update多次,与一次update这段长数据,得到的结果一样
    但是update多次为校验大文件提供了可能。
    以上方式加密还是可以通过撞库来实现暴力破解,所以有必要在加密算法中添加自定义的key来进行加密
    subprocess模块:import subprocess
    res1=subprocess.Popen(r'dir C:UsersAdministratorPycharmProjects est函数备课',shell=True,stdout=subprocess.PIPE)
    res=subprocess.Popen('findstr test*',shell=True,stdin=res1.stdout,
    stdout=subprocess.PIPE)

    print(res.stdout.read().decode('gbk')) #subprocess使用当前系统默认编码,得到结果为bytes类型,在windows下需要用gbk解码

  • 相关阅读:
    对后端返回的图片添加点击事件
    Unity3D 优化NGUI纹理
    Unity 给Mono脚本添加Try Catch工具
    Unity3D Shader 高斯模糊
    Unity3D Shader 空气扭动效果
    Unity3D Shader 马赛克后期效果
    Unity3D Shader 半兰伯特光照模型
    Unity3D Shader水波效果
    Unity3D Shader 模型流光效果
    Unity3D Shader 按百分比裁剪模型
  • 原文地址:https://www.cnblogs.com/Jicc-J/p/12608670.html
Copyright © 2020-2023  润新知