Python模块、序列化模块

一、模块

模块就是写好的功能放在一个文件里,即py文件

模块的种类:

① 内置模块:安装python解释器的时候就装上了

② 第三方模块、扩展模块:不在内置模块不一定不重要,根据用户需求安装使用

③ 自定义模块:自己写的py文件

二、序列化模块

序列:列表、元组、字符串、bytes

序列化:把一个数据类型转换成字符串、bytes类型的过程就是序列化

数据类型序列化的场景:

① 把一个数据类型存储在文件中

② 把一个数据类型通过网络传输的时候

eval和exec:用户输入,文件读入,网络传入都不能使用,存在风险,极其不安全。

import json    # 导入json模块

在json格式下,所欲的字符串都是双引号。

json.dumps(obj)   序列化的过程,转换为字符串

import json                                     # 导入json模块
dic = {'province':'广东省','city':'深圳市'}
s = json.dumps(dic)                             # 序列化的过程
print(s,type(s))

# {"province": "\u5e7f\u4e1c\u7701", "city": "\u6df1\u5733\u5e02"} <class 'str'>

json.loads(str)    反序列化的过程,转换为原本的类型

import json                                         # 导入json模块
dic = {'province':'广东省','city':'深圳市'}
s = json.dumps(dic)                                 # 序列化的过程
dic2 = json.loads(s)                                # 反序列化的过程
print(dic2,type(dic2))

# {'province': '广东省', 'city': '深圳市'} <class 'dict'>

json的优点:

① 所有的语言都通用

json的缺点:

① 只支持非常少的数据类型

② 对数据类型的约束很苛刻

③ 字典的key必须是字符串

④ 只支持数据类型:数字、字符串、列表、字典 

猜你喜欢

转载自www.cnblogs.com/st-st/p/9581447.html