一、序列化
1.序列化的流程以及可序列化的数据类型
首先是对象信息和数据结构信息——通过转化为后存储和传输——字符串类型
可序列化的数据类型:
- number
- str
- list
- tuple
- dict,字典类型
不可用于序列化的数据类型
- class
- def
- set
2. python中的json模块
json模块是一个通用的序列化模块。
方法名 | 参数 | 介绍 | 举例 | 返回值 |
---|---|---|---|---|
dumps | obj | 对象序列化 | json.dumps([1,2]) | 字符串 |
loads | str | 返序列化 | json.loads(’[1,2,3]’) | 原始数据类型 |
3. python中的pickle模块
使用pickle模块效率要比json模块高。
方法名 | 参数 | 介绍 | 举例 | 返回值 |
---|---|---|---|---|
dumps | obj | 对象序列化 | pickle.dumps([1,2]) | 比特 |
loads | byte | 返序列化 | json.loads(’[1,2,3]’) | 原始数据类型 |
4.程序实现
import json
def read(path):
with open(path, 'r') as f:
data = f.read()
return json.loads(data)
def write(path, data):
with open(path, 'w') as f:
if isinstance(data, dict):
_data = json.dumps(data)
f.write(_data)
else:
raise TypeError('data is dict')
return True
data = {'name': '杨家将', 'age': 18, 'top': 176}
if __name__ == '__main__':
# write('test.json', data)
result = read('test.json')
print(result, type(result))
二、yaml格式文件的介绍
1.yaml格式的介绍
文本文件:xxx.yaml
服务器配置文件:
name: (代表key值)
xiaomi (代表value值)
xinqing:(以列表的形式)
-haha
-heihei
new:(以字典的形式呈现)
a:b
c:1
2.pyyaml模块的用法
用法:
f = open(yaml_file, 'r')
data = yaml.load(f.read())
f.close()
返回值:字典类型
{
name: 'xiaomi',
'age':10,
'xinqing':['haha', 'heihei'],
'new':{'a':'b', 'c':1}
}
3. 程序实现
url:
https://www.imooc.com/
types:
- 前沿
- 前端
- 后端
- 移动端
- 云计算
- 运维
- ui
python:
web: django
spader: bs5
import yaml
def read(path):
with open(path, 'r') as f:
data = f.read()
result = yaml.load(data, Loader=yaml.FullLoader) # 这里要加上Loader参数,并且赋值为yaml.FullLoader,目的是在数据解析过程变的更安全
return result
if __name__ == '__main__':
result = read('muke.yaml')
print(result, type(result))
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦