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')
原文地址:https://www.cnblogs.com/Ghostant/p/11882574.html