• 常用模块-02


    一、hashlib模块

    1.1、hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据

    #python2的用法

    m2 = hashlib.md5("a")  #这里还可以另外加上一个随机数,增加密码复杂度
    src = "123456"
    m2.update(src)      #对src这个数进行md5加密
    print(m2.hexdigest()) #打印加密后的结果


    #python3的用法

    m3 = hashlib.md5("123456".encode("utf-8")) #增加随机数
    src = bytes("ling", encoding="utf-8")    #转换为字节  
    m3.update(src)
    print(m3.hexdigest())

    二、StringIO模块

    在python2中是直接导入, 在python3中是放到io模块里了

    2.1、在平时的开发过程中,有时候我们并不需要写在文件中,可以直接通过StringIO模块直接写入到系统内存中,如果不用了,直接清除就可以了。StringIO主要是用来在内存中写入字符串及字符串的缓存,它的接口和文件操作的接口是一致的,基本所有关于文件的方法都是可以用的,只要几个特殊的:

    ①、StringIO().getvalue():此函数没有参数,无论读写位置在哪里,都能够返回对象中的所有数据

    ②、StringIO().truncate(0):参数为0,表示清空所有写入的内容

    ③、StringIO().flush():刷新内部缓冲区

    2.2、示例:

    from io import StringIO

    stringIO = StringIO()
    stringIO.write("hello")    #写入到内存
    stringIO.write("world")    #写入到内存
    print(stringIO.getvalue())  #打印出来
    stringIO.truncate(0)      #清空0之后的所有
    print(stringIO.getvalue())  #再次打印没有东西了

    test = dict(a=1)
    print(bytes(str(test).encode("utf-8")))  #修改字典为byte格式,需要先转换为字符串才能修改

    StringIO操作的只能是str,如果要操作二进制数据,就需要用BytesIO,二进制可以操作任何东西

    三、json模块

    3.1、JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写

    ①、json.dumps():把python对象转化成json数据类型

    ②、json.loads():把json数据类型转化成python对象

    需要注意的是json是一个str类型,但是转换的话只能用上面两个互转而不能用str强制转换,不然再重新loads的话会报错

    ③、json.dump():把python对象写入文件

    ④、json.load():把文件转换成python对象

    3.2、示例

    import json

    test = '''[{"a": 1, "aa": 11, "aaa": 111}, {"b": 2, "bb": 22, "bbb": 222}, {"c":3}]'''

    newTest = json.loads(test)
    print(type(newTest))
    print(newTest[0]["a"])   #获取test的"a"值


    3.3、爬取数据示例:

    import json

    import requests

    url = "http://qwd.jd.com/fcgi-bin/qwd_activity_list?g_tk=1231472791&env=3"
    session = requests.session()
    r = session.get(url)
    result = json.loads(r.text)  #转换为python对象
    print(result["errCode"])
    print(result["msg"])

    3.4、示例:

    import json
    a = dict(hello="你好")
    print(a)
    print(a["hello"])
    # print(str(a))
    print(json.dumps(a, ensure_ascii=False))  #ensure_ascii=False做转码用避免乱码

    #在python2中第一个打印a是内存中的显示形式,而在python3就不存在这种情况了

    3.5、示例:

    import codecs
    import json

    test = {"a": 1, "b": 2}
    with codecs.open("1.txt", "w") as f:
    json.dump(test, f)    #需要关闭文件才能操作,写入到1.txt文件内

    with codecs.open("1.txt", "r") as f:
    aa = json.load(f)
    print(aa)
    print(type(aa))
  • 相关阅读:
    Magento 安装时文件权限 设置
    进度十(10.28)
    进度九(10.27)
    进度八(10.26)
    进度六(10.24)
    进度五(10.23)
    进度四(10.22)
    进度三(10.21)
    进度二(10.20)
    进度一(10.19)
  • 原文地址:https://www.cnblogs.com/Jweiqing/p/8963572.html
Copyright © 2020-2023  润新知