• Python常用模块


    json模块

    # json模块是一个序列化模块。
     - 是’第三方‘的数据格式
     ps:1、元组在序列化后,实际在json中的存储格式是列表
         2、set集合类型不能被json序列化
    # 序列化:在各类编程语言中,数据在内存中的存储位置是零散的,比如字典的映射关系,是无序的,想要保存这样的数据类型,直接保存是很麻烦的。序列化其实就是将数据类型转化为字符串,因为字符串在存储的时候是连续的一块空间。
    # 反序列化:就是分析字符串,将其从字符串转化成其原属的数据类型。
    

    1、为什么要使用json模块

    # 为了让各编程语言实现数据胡同
    # 各类编程语言都有其固有的数据结构,在内存中的存储可能都不一样,但是序列化后的语法格式可能是一样的,一样的语法格式,可以经过各编程语言的分析,转化为其自己的数据类型
    

    2、使用方式

    import json
    
    my_dict = {
        'user': 'yyh123',
        'pwd': '1234',
        'flow': [],
        'balance': 0,
    }
    
    # dumps将数据对象转换为(json)字符串
    res = json.dumps(my_dict)
    with open(f'{my_dict["user"]}.json', 'w', encoding='utf-8')as f:
        f.write(res)
    
    # loads将(json)字符串转化为数据对象
    with open(f'{my_dict["user"]}.json', 'r', encoding='utf-8')as f:
        res = f.read()
    print(json.loads(res))
    
    # dump比dumps多传入一个参数---文件句柄
    with open(f'{my_dict["user"]}.json', 'w', encoding='utf-8')as f:
        json.dump(my_dict, f)
    
    # load比loads多传入一个参数---文件句柄
    with open(f'{my_dict["user"]}.json', 'r', encoding='utf-8')as f:
        res = json.load(f)
    print(res)
    

    pickle模块

    # pickle模块是python独有的,自带的序列化模块
    # 优点:
    	- 可以将python的任意数据类型序列化
        - 可以直接存‘bytes’类型,存取速度快
    #缺点:
    	- 只能支持python使用,不能跨平台。(致命缺陷)
    

    1、使用方法:

    import pickle
    
    my_set = {1, 2, 3, 3, 4, 4, 5, 6, 8}
    res = pickle.dumps(my_set)    # res ==> 字节类型
    with open('test.pickle','wb')as f:
        f.write(res)
    
    with open('test.pickle','rb')as f:
        res = f.read()
    
    print(pickle.loads(res))
    # load与dump方法与json模块一致
    

    collections模块

    # python默认的八大数据类型:
    	- 整形
        - 浮点型
        - 布尔型
        - 字符串
        - 列表
        - 字典
        - 集合
        - 元组
    
    # collections模块提供八大数据类型之外的数据类型。如:
    	- 具名元组
        - 有序字典
    
    from collections import OrderedDict
    from collections import namedtuple
    
    my_nt = namedtuple('空间坐标', ['x', 'y', 'z'])  # 自定义一个NAMED元组类
    location = my_nt(300, 200, 150)  # 实例化刚定义的元组类,返回一个对象
    print(my_nt)
    print(location)
    
    PlayCard = namedtuple('Cards', ['pattern', 'figure'])
    card_1 = PlayCard('Heart', 'A')
    card_2 = PlayCard('Spade', 'K')
    card_3 = PlayCard('Club', 'Q')
    card_4 = PlayCard('Diamond', 'J')
    my_list = [card_1, card_2, card_3, card_4]
    print(card_1)
    print(card_2)
    print(card_3)
    print(card_4)
    print(my_list)
    

    openpyxl模块

    # openpyxl模块是第三方库
    	- 可以对Excle表格进行数据操作
    
    # 写入数据
    import openpyxl
    
    # openpyxl是第三方模块需要pip下载。
    # 清华源:https://pypi.tuna.tsinghua.edu.cn/simple
    
    # 写入数据
    my_workbook = openpyxl.Workbook()
    
    my_sheet1 = my_workbook.create_sheet('Sheet1', 1)
    my_sheet2 = my_workbook.create_sheet('Sheet2', 2)
    # 更改sheet工资表名字
    my_sheet1.title = 'Sheet1_changed'
    print(my_workbook.get_sheet_names())
    # 对my_sheet1进行数据操作
    # 写入行
    my_sheet1.append([1, 2, 3, 4, 5, 6])
    my_sheet1.insert_cols(3,2)
    # 指定单元格写入
    my_sheet1['A10'] = 'yyh'
    my_sheet1.append([1, 2, 3, 4, 5, 6])
    my_workbook.save('test.xlsx')
    
    
    # 加载excle修改保存
    my_workbook = openpyxl.load_workbook('test.xlsx')
    my_sheet = my_workbook.get_sheet_by_name('Sheet1_changed')
    print(my_sheet.cell(10,1).value)
    my_sheet['A10'].value = 20
    print(my_sheet['A10'].value)
    my_workbook.save('test.xlsx')
    
  • 相关阅读:
    web前端开发最佳实践--(笔记之JavaScript最佳实践)
    web前端开发最佳实践--(笔记一)
    HTML5及CSS3--freeCodeCamp(笔记一)
    javascript系列--函数(一)
    HTML5本地存储
    分享一些好用的设计网站
    .net面试问题总结
    ife_task10--弹性盒子
    WPF--搭建一个简单的demo
    信息技术文集
  • 原文地址:https://www.cnblogs.com/Ghostant/p/11882574.html
Copyright © 2020-2023  润新知