第16天(内置模块)

拥有回忆 提交于 2019-12-04 21:21:02

第16天(内置模块)


json模块:是一个序列化模块。

json:是一个‘第三方’的特殊数据格式。

可以将python数据类型--->json数据格式--->字符串--->文件中

其他语言要是想使用python的数据:

文件中--->字符串--->json数据格式--->去他语言的数据类型


注意:在json中,所有是字符串都是双引号


元组比较特殊:python中的元组,又是将其转化成json数据,内部会将元组--->列表

集合(set)是不能装换成json数据


为什么要使用json:

魏了让不同语言之间的数据可以共享。

ps:由于各种语言的数据类型不一,但长相可以一样,比如python不能直接使用其他语言的数据类型,必须将其他语言的数据类型转换成json数据格式,python获取到json数据后可以将json转换成pyton的数据类型


如何使用:

import json'''json.dumps:json.dumps() #f = open()-->f.writhe() 序列化:python数据类型 --->json --->字符串--->json文件中​json.loads:f = open(), str = f.read(), json loads(str)反序列化:json文件中--->字符串--->json--->python或其他语言数据类型​json.domp() 序列化:python数据类型-->json-->字符串-->json文件中内部实现 f.write()​json.load() 反序列化:json文件中-->字符串-->json-->python或其他语言数据类型内部实现 f.read()dump, load: 使用更方便注意:保存json数据时,用.json做为文件的后缀名​​'''​# 列表# l1 = ['123','456']# l2 = ['斯卡蒂','夜莺','能天使']# dumps: 将python数据-->json数据格式-->字符串# ensure_ascii将默认的ascii取消设置为False,可以再控制台看到中文,否则看到的是bytes类型数据# json_str = json.dumps(l2, ensure_ascii=False)# json_str1 = json.dumps(l1)# print(json_str1)# print(json_str)# print(type(json_str))​# json.loads()字符串-->json数据格式-->python数据# python_data = json.loads(json_str)# python_data1 = json.loads(json_str1)# print(python_data1)# print(python_data)# print(type(python_data))​# 元组# t1 = ('初雪','伊芙利特','芙兰朵露')# dumps: 将python数据-->json数据格式-->字符串# ensure_ascii将默认的ascii取消设置为False,可以再控制台看到中文,否则看到的是bytes类型数据# json_str1 = json.dumps(t1, ensure_ascii=False)# print(json_str1)# print(type(json_str1))​# json.loads()字符串-->json数据格式-->python数据# python_data = json.loads(json_str1)# print(tuple(python_data))  # 元组# print(python_data)  # 列表​​# 字典# d1 = {#     'name' : 'angle',#     'age' : 19# }# dumps: 将python数据-->json数据格式-->字符串# ensure_ascii将默认的ascii取消设置为False,可以再控制台看到中文,否则看到的是bytes类型数据# json_str = json.dumps(d1, ensure_ascii=False)# print(json_str)# print(type(json_str))​# json.loads()字符串 ----> json数据格式 ---》将python数据# python_data = json.loads(json_str)# print(python_data)# print(type(python_data))  # 字典 dict​# 注册功能# def register():#     username = input('你的用户名:').strip()#     password = input('你的密码:').strip()#     re_password = input('确认密码:').strip()#     if password == re_password:#         user_dic = {#             'name': username,#             'pwd' : password#         }#         json_str = json.dumps(user_dic, ensure_ascii=False)##         # 开始写入文件中#         # 注意: 保存json数据时,用.json作为文件的后缀名#         with open(r'user.json', 'w', encoding='utf-8')as f:#             f.write(json_str)# register()​# dump, loadimport jsonuser_dic = {    'username': 'jinyi',    'password': 123}# with open('user2.json', 'w',encoding='utf-8')as f:#     json.dump(user_dic, f)​# with open('user2.json', 'r',encoding='utf-8')as f:#     print(json.load(f))

pickle模块

'''pickle模块:    pickle是一个python自带的序列化模块。​    优点:        - 可以支持python中所有的数据类型        - 可以直接存 "bytes类型" 的数据,pickle存取速度更快​    缺点: (致命的缺点)        - 只能支持python去使用,不能跨平台'''​import pickle​# set1 = {#     'tank', 'sean', 'jason', '大脸'# }## # 写 dump# with open('teacher.pickle', 'wb') as f:#     pickle.dump(set1, f)​​# 读 loadwith open('teacher.pickle', 'rb') as f:    python_set = pickle.load(f)    print(python_set)    print(type(python_set))​

collections模块


python默认八大数据:

整型, 浮点型, 字符串, 字典, 元组, 列表, 集合, 布尔值

collections模块:

提供一些python八大数据类型‘以外的数据类型’


具名元组:

具名元组 只是一个名字

应用场景:

-坐标

from collections import OrderedDict


有序字典:

python中字典默认是无序

collections import OrderedDict

collections中提供了有序的字典

from collections import OrderedDict

# 具名元组# from collections import namedtuple# # 传入可迭代对象是有序的# # 应用:坐标# # 将‘坐标’编程‘对象’的名字# point = namedtuple('坐标', ['x', 'y'],)# 第二个参数既可以传可迭代对象​#传参 个数,要与namedtuple第二个参数的个数以一一对应# p = point(1, 3)  # 本质上传了4个# print(p)# print(type(p))### # 扑克牌:# card = namedtuple('扑克牌', ['color', 'number'])# c1 = card('♥', 'A')# c2 = card('♠', 'A')# c3 = card('♦', 'A')# print(c1)# print(c2)# print(c3)​​# python中字典默认无序dic = dict({'a': 1, 'b': 2, 'c': 3})print(dic)for i in dic:    print(i)​​# 有序字典from collections import OrderedDict​order_dict = OrderedDict({'a': 1, 'b': 2, 'c': 3})print(order_dict)print(order_dict.get('b'))

openpyxl模块

第三方模块,可以对Excle表格进行操作的模块

# 写入数据from openpyxl import Workbook# 获取Excel文件对象w1 = Workbook()wb1 = w1.create_sheet('异界大魔王1', 1)wb2 = w1.create_sheet('放开那个巫女1', 2)​# 修改工作表名字: 为异界大魔女1print(wb1.title)wb1.title = '异界大魔女1'print(wb1.title)​# 为第一张工作表添加值#wb1['工作表中的表格位置']wb1['A10'] = 200wb1['b10'] = 100wb1['c10'] = 'SUM(A10:B10)'​​wb2['A1'] = '世界之大'​# 生成Excel表格w1.save('异界剑圣纵横天下.xlsx')print('成功')

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!